2011-12-16 1 views
1

존재하지 않는 키가있는 배열을 사용하여 매개 변수를 참조로 사용하는 함수를 호출하면 나중에 키가 있도록 배열이 수정됩니다.참조로 호출하면 키 인덱스가 생성됩니다.

function test(&$x) 
{ 
} 

$array = array(); 

print_r($array); 
test($array['foo']); 
print_r($array); 

Array 
(
) 
Array 
(
    [foo] => 
) 

는 왜 이런 일이 발생하고 그것에 대해 뭔가를 할 수 있습니까?

답변

1

당신이 함수에 전달하려고하면 키가 생성된다

test($array['foo']); 

당신은 참조를 전달하려면, 존재해야하므로. PHP는 당신을 위해 그것을 만들 것입니다 (그러나 나는 그들이 Notice를 던져야한다고 생각합니다.

나는 기능을 다시하고 배열과 별도로 키 통과 할 것 :

function test(&$array, $key) 

과 같이 사용 :

test($array, 'foo'); 
관련 문제