微妙だと思うPHPの動作に出くわしましたが、かなりクールです。でもどうしたらいいのかわからない…
$test=array('a'=>'c', 'b'=>'c');
unset($test['a']);
var_dump($test);
このプリント
array(1) { ["b"]=> string(1) "c" }
アレイが空になることを期待していました。結局のところ、$ test['a']は'c'と評価されるため、unset関数は'c'のみを認識しますが、それが削除したい最初の'c'値であることがわかりますか?
私の推測では、インターペッターは非常に賢く、与えられたパラメーター内の配列の内部を調べますが、それは純粋に推測です...