2015-09-15 16 views
8

Bu örnekte mevcut fonksiyon (muhtemelen PHP5.6'dan önce yazılmış); Bunu yapabilmemiz PHP5.6 içindeBir diziyi, PHP 5.5 veya önceki sürümlerinde sonsuz sayıda bağımsız değişken kabul eden bir php işlevine iletebilir miyim?

function sum() 
{ 
    $acc = 0; 
    foreach (func_get_args() as $n) { 
     $acc += $n; 
    } 
    return $acc; 
} 

;

$values = array(1, 2, 3); 
echo sum(...$values); 

Bir diziyi 5.6'dan önceki benzer bir şekilde geçirebilir miyim?

+9

[call_user_func_array ('sum', $ değerler)] 'den beri kullanımdan kaldırılmış olarak kullanılmamalıdır (http://www.php.net/manual/en/function.call -user-func-array.php) –

+0

Mükemmel. Cevap olarak mesaj gönderebilir misin, sonra kabul edebilirim. – srayner

cevap

3

PHP Sen katetti Olası bir yanlış anlama olduğu (bir referans olarak dizi değişkenleri geçer PHP 5.4 olduğunu ve önceki her zaman almak not edilmelidir 5.6

$values = array(1, 2, 3); 
echo call_user_func_array('sum', $values); 

öncesinde PHP sürümlerinde variadic argümanları geçmek call_user_func_array kullanır geri gün içinde). Bu metodoloji 5.5'de kaldırılmıştır ve 5.3

İlgili konular