プログラマのつれづれなるままにプログラマのつれづれなるままに音宮志久が思ったことなどをネタにします。プログラムネタ・数学ネタがメインです。(WordPressで管理画面に入れないことも)コメントを残すということで先ほどプラグインを更新したときにいきなり発生した事態について書いてみます。「いったい何事?」と考えてしまいましたが理由がわかればプログラムの修正でなんとかなるのですが、知識がない人にもわかるようにいろいろと書いてみます。PHPのとある処理に起因する問題エラーメッセージで検索すれば詳しく出てくるので詳しくは書きませんが、もしPHPやHTTPサービスのログを直接見られる場合はこんなログが書いてあることがあります。contextこのエラーですが、調べてみると関数に見えるPHPの演算子(に近いのかな?)に対して関数の戻り値を直接渡した場合エラーとなる、というものです。array(...);}if(empty(hoge())){}else{}というものです。hoge()if(empty($ret)){}else{}としなければならない、ということだそうです。一つ重要なポイントとしてはPHP5.5以降であればempty()については関数の戻り値を直接渡してもエラーとならない、ということになったようです。今回引っかかったのがこれです。Optimizerを3.2.0に更新したら管理画面に入れなくなった...つまり見事に上の現象に引っかかってしまったわけです。私の場合はエラーログを直接確認できる立場だったので何が起こったのか即座に判定してなんとかしたわけですが知らない人だと検索しても出てこないのでたぶん大変ですね...。レンタルサーバーなんかだとPHP5.5系以上のはずなので問題ないはずですが...。PHPのバージョンを上げるか回避処理を追加しよう通常はバージョンを5.5以上にあげる処理を行えばOKです。それができないのであれば一時的に変数に受け取ってempty関数に渡すようにスクリプトを変更することで回避しましょう、とだけ書いておきます。どんなスクリプトになるのか知りたい方はコメント欄にでも要望を書いておいてください。あとで追記するかもしれません。Optimizerですが、3.2.1で修正されていることを確認しました。手動修正としては3.2.1のコードを手元にダウンロードしてbulk.phpをFTP経由などで書き換えることで対応することが可能です。この手の問題って確認漏れなのでいろいろな環境で試さないとだめなのとバグ報告の早さおよび対応の早さが評価の鍵となってしまいますかね。コメントをキャンセルメールアドレスが公開されることはありません。気になるプログラムネタや数学ネタがあったら書き込みたいのだが残業が長すぎて眠気が全くとれず体調があまりよくない。過労などでぶっ倒れるかもしれない。あと、さすがに独り身が寂しいのでなんとかしたいと考えてはいるのだが...。アクセスカウンタアクセス数:スポンサーリンクモバイルバージョンに。