IT女子のお気に入りフォルダ

管理人の備忘録と実践を兼ねた(出来るだけ)役に立つ情報を配信するブログです。

Can’t use function return value in write context とかいうPHPのエラー

サーバー移行したら「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を知らなきゃダメだな(反省)。

PHP: empty – Manual