うわー
これは私の意図を説明するためのもので、実際のアプリケーションはさらに複雑です。この関数は参照を返しますが、三項演算子を使用して表現すると、PHP は戻り値を正しく理解できず、if を使用すると正常に表示されます。
これがバグかどうかはわかりません。多くの人が以前に発見したはずであり、私が使用している 5.4.11 と 5.5.0alpha4 にもこの問題があります
ディスカッションへの返信 (解決策)
結び目
これはバグではありません!しかし、正しい文法分析
三項演算は構造体であり、その結果は実数変数に代入する必要があります
$a = is_null($data) ? $data : $data;
それなら何も問題はありません
もちろんtest() もエラーなし
php5.3 以降、多くの初期のプログラムでこの問題が発生します