PHP: değişkenli fonksiyon parametre değerleri Array

3 Cevap php

Ben bir fonksiyonun parametrelerin bir liste halinde devrik gereken bir değişken uzunlukta bir dizi var.

Ben bunu düzgün bir yolu var umut - ama ben göremiyorum.

Bu kaç parametre ama yöntemin adını bilmiyorum, ne de - ben yazıyorum kodu bir sınıf bir yöntem arayacaktır.

Bu çalıştı - ama çalışmıyor:

$params = array(1 => "test", 2 => "test2", 3 => "test3");
ClassName::$func_name(implode($params, ","));

Fonksiyonun ilk parametresine yukarıda topaklar tüm değerleri. Bu 3 parametre değerleri (test, Test2, Test3) ile işlevini çağırarak gerekir oysa.

Neye ihtiyacım şudur:

ClassName::$func_name("test", "test2", "test3");

Herhangi bir fikir nasıl düzgünce bunu?

3 Cevap

Kullan func_get_args işlevi içinde: http://php.net/func%5Fget%5Fargs

Edit:

Daha kolay - neden sadece fonksiyon bir dizi işlemek var, sonra fonksiyona doğrudan $ params dizisi geçmek değil?

Sen kullanabilirsiniz eval:

  eval("$func_name(" . implode($params, ",") . ");");

Eğer parametreler alıntı ve / veya kaçan almak için bazı lambda hile yapmak gerekebilir rağmen:

  $quoted_escaped_params = array_map(create_function('$a', 'return "\"". str_replace("\"",` "\\\"", $a) . "\""'), $params);