Can’t use function return value in write context とかいうPHPのエラー
- 公開日:2015/8/7
この記事は最終更新日から9年以上が経過しています。
サーバー移行したら「Can’t use function return value in write context」とかいうPHPのエラーが出た。前のサーバーでは問題なく動くのになんだこれ?ってなったのでメモ。
発生したのは以下の記述。
if (empty(myFunc())) { // ここに処理 }
これを以下にように修正すれば解決する。
$res = myFunc(); if (empty($res)) { // ここに処理 }
原因は、empty()の引数に関数を書いてしまっているから。
マニュアルにもありますが、PHP5.5より前のバージョンでは、empty()がサポートするのは変数だけ。それ以外の値をチェックするとパースエラーになるのです。
なので、こんなのもダメ。
if (empty(trim($name))) { // ここに処理 }
もっとちゃんとPHPを知らなきゃダメだな(反省)。