参照代入なら警告は出ない

某所にコメントしたんだけど、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 を有効にしているのかって話になるけど。