2015-09-15 5 views
8

Podany tutaj przykład istniejącej funkcji (przypuszczalnie napisany przed PHP5.6);Czy mogę przekazać tablicę do funkcji php, która akceptuje nieskończoną liczbę argumentów w PHP 5.5 lub wcześniejszym?

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

w PHP5.6 możemy to zrobić;

Czy mogę przekazać tablicę w podobny sposób przed 5.6?

+9

[call_user_func_array ("suma", wartości $)] (http://www.php.net/manual/en/function.call -user-func-array.php) –

+0

Idealny. Czy możesz wysłać odpowiedź jako odpowiedź, a następnie mogę ją zaakceptować. – srayner

Odpowiedz

3

PHP używa call_user_func_array przekazać zmiennej liczbie argumentów argumentów w wersjach PHP przed 5,6

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

Należy zwrócić uwagę, że PHP 5.4 i wcześniej zawsze przechodzi zmienne tablicy jako punkt odniesienia (która jest potencjalnym haczyka natknąłem z powrotem w ciągu dnia). Ta metodologia została usunięta w wersji 5.5 i nie należy jej używać, ponieważ jest przestarzała od wersji 5.3

Powiązane problemy