php argümanlar dizisini açma

3 Cevap php

Python dizilerini listesini açma ve benzeri gibi, argüman olarak bir fonksiyon onları vermek için "*" operatörünü sağlar:

args = [3, 6]
range(*args)            # call with arguments unpacked from a list

Bu eşdeğerdir:

range(3, 6)

PHP bunu başarmak için bir yol olup olmadığını biliyor mu? "PHP ambalajından" varyasyonları için bazı googling hemen .. belki PHP farklı bir şey deniyor şey kadar açık değil mi?

3 Cevap

Sen call_user_func_array kullanmalısınız

call_user_func_array(array(CLASS, METHOD), array(arg1, arg2, ....))

http://www.php.net/call_user_func_array

veya yansıma API kullanmak http://www.php.net/oop5.reflection

Yeni php5.6 (ki currently in beta), size ... operatör var. Bunu kullanarak, sizin call_user_func_array() üzerine kurtulmak ve daha kolay bir şekilde kullanabilirsiniz alabilirsiniz. Örneğin bir fonksiyona sahip

function add($a, $b){
  return $a + $b;
}

and your array $list = [4, 6]; (after php5.5 you can declare arrays in this way). You can call your function with ...:

echo add(...$list);