2008-11-16 6 views
23

Python dostarcza operatorowi „*” do rozpakowywania listę krotek i dając je do funkcji jako argumenty, tak:rozpakowaniu tablicę argumentów w php

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

Jest to odpowiednik:

range(3, 6) 

Czy ktoś wie, czy jest sposób na osiągnięcie tego w PHP? Niektórzy szukający odmiany "PHP Unpack" nie od razu podnieśli cokolwiek. Może w PHP jest inaczej?

Odpowiedz

13

W php5.6... operator został dodany. Używając go, możesz pozbyć się call_user_func_array() dla tej prostszej alternatywy. Na przykład posiadające funkcję

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

i swoją tablicę $list = [4, 6]; (po php5.5 można zadeklarować tablice w ten sposób). można nazwać czynność z ...:

echo add(...$list);

+0

Nie działa, jeśli tablica ma klucze String;) – BusyAnt

0

W niektórych sytuacjach można rozważyć użycie unpacking, co jest możliwe w PHP, to podobny sposób do pytona:

list($min, $max) = [3, 6]; 
range($min, $max); 

Jest jak dotarłem do tej odpowiedzi przynajmniej. Wyszukiwarka Google: PHP argument unpacking