0

理解できない問題があります。次のコードはなぜ print Array ( [a] => 1 [b] => 2 [c] => 3 [d] => ) なのか、 $info 変数は変更しませんでしたが、なぜ変わったのですか?

<?php
function ifSetOr(&$a, $b = null) {
    return isset($a) ? $a : $b;
}

$info = array('a' => 1, 'b' => 2, 'c' => 3);
ifSetOr($info['d']);
print_r($info); //Array ( [a] => 1 [b] => 2 [c] => 3 [d] => ) 
?>
4

1 に答える 1

3

$info['d']参照として渡したときに暗黙的に作成されました。

このため、そのような ifSetOr 関数は機能しません。存在しない変数を渡すことはできません。また、実際には関数ではなく言語構造であるため、「パラメーター」issetは例外であることに注意してください。isset

于 2013-01-22T23:19:51.677 に答える