最近、まれに以下のようなPHPエラーに出くわします
Fatal error: Can't use method return value in write context in ... on line xxx
実際に該当する箇所のソースを確認してみると、どうやら関数「empty()」に原因があるようです。
if (!empty($command->getMessage())){ ...
調べてみると、PHP 5.4以下では関数「empty()」や「isset()」は、引数には関数の戻り値ではなく変数を設定しなければいけないようです。
対策1:関数の戻り値に変数を割り当てる
PHP 5.4以下では、以下のように変数を割り当てることで、エラーを回避できます。
$message = $command->getMessage(); if (!empty($message)){ ...
対策2:PHPのバージョンを5.5以上にする
この現象はPHP 5.4以下で発生するので、サーバ環境を5.5以上、5.6や7.xにアップグレードすることでエラーを回避できます。
最近このエラーを見かけるようになった理由として、
一部サーバ環境で5.6や7.xへのアップグレードが進む中、パッケージも環境が5.6以上などを奨励するように設計されています。
そんな中、やや古めの自社サーバやレンタルサーバの環境では5.4以下が残っているため、パッケージをインストールした際にPHPエラーが発生するようです。
コメントする