2011-12-16 14 views
1

存在しないキーを持つ配列を持つパラメータを参照として使用する関数を呼び出すと、後でそのキーが存在するように配列が変更されます。参照によって呼び出すとキーインデックスが作成されます

function test(&$x) 
{ 
} 

$array = array(); 

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

Array 
(
) 
Array 
(
    [foo] => 
) 

は、なぜこれが起こると私はそれについて何かを行うことができますか?

答えて

1

あなたが関数に渡ししようとすると、キーが作成されます。

test($array['foo']); 

あなたが参照することによって、それを通過したいので、それは存在する必要があります。 PHPはあなたのためにそれを作成します(しかし、私はあなたがそれらを有効にしている場合、通知をスローする必要があります)。

私は機能を書き換え、別々に配列し、キーを渡します。

function test(&$array, $key) 

をし、このようにそれを使用します。

test($array, 'foo'); 
関連する問題