参照代入なら警告は出ない
某所にコメントしたんだけど、PHPってなぜだか参照の代入なら警告(E_NOTICE)は出ない。つまり、
$data = array(); $a = $data[0];
は2行目で E_NOTICE になるけど、
$data = array(); $a =& $data[0];
ならOKだったり。しかもなぜかこの後 $a の値を参照しても警告なし。なので、
function equal(&$a, $b) { return $a == $b; }
てしておいて、
if (equal($_GET['foo'], 'bar')) { }
なんてのもありかなぁ。ただ、こういうのをあんまり多用すると何のために E_NOTICE を有効にしているのかって話になるけど。