Use of undefined constant PHPバージョンアップによるエラー
PHPのバージョンを5.3から7.3に上げる作業があった際、PHPのエラーが出たので書いておこうと思います。PHPにもバージョンがあって、Windowsのようにセキュリティサポートの期限があります。サーバーによっては、「この日までにアップデートしないと勝手にバージョン上げちゃうよ!」というサーバーがあるので要注意です。
PHPのバージョンとサポート期限
2019年中に7.1のセキュリティサポートも期限を迎えます。古いホームページでPHPのフォームをお使いの方などは注意が必要です。Windowsよりもずっとサポート期限が短いですね・・・
2020/07/14現在、php8.0のテスト版がリリースされています。
https://wiki.php.net/todo/php80
ver | 初回リリース | 最新リリース日 | アクティブサポート | セキュリティサポート |
---|---|---|---|---|
7.4 | 2019/11/28 | 2020/07/09 | 2021/11/28 | 2022/11/28 |
7.3 | 2018/12/06 | 2020/07/09 | 2020/12/06 | 2021/12/06 |
2017/11/30 | 2020/07/09 | 2020/11/30 | ||
2016/12/01 | 2019/04/04 | |||
2015/12/03 | 2018/12/06 | |||
2014/08/28 | 2019/01/10 | |||
2013/06/20 | 2016/07/21 | |||
2012/03/01 | 2015/09/03 | |||
2009/06/30 | 2014/08/14 | —-/–/– (終了) |
参照:https://www.php.net/index.php#id2020-07-09-4
WordPressを使っていると、ダッシュボードに「新しいPHPに変えて!」という警告が出ている方も多いのではないでしょうか。サーバーのコントロールパネルで変更できるので、是非アップデートしてあげてください。
Use of undefined constant とは?
本題に戻りますが、実は単純なエラーなのです。直訳すると「未定義の定数の使用」。PHP5.3以前ではエラーは出ていませんでしたが、今回の案件の場合は、「クォーテーションで囲まれてないよ!」ということでした。
実際のコードは次の通りです。
<?php echo$obj->get_radioVal('xxxx',やさい); ?>
間違いは、「やさい」という部分です。「やさい」の部分を’ ’で囲んであげるだけで問題は解消します。
<?php echo$obj->get_radioVal('xxxx','やさい'); ?>
同エラーが複数ありました。
PHPのヴァージョンを上げる前に
古いバージョンのPHPをお使いのサイトはローカル環境でテストしてみましょう。もしくは、別に借りているサーバーがあるのであれば、その中に入れてみるのもありだと思います。
今回他にも fclose();(ファイルを閉じる関数)で「パラメーターの中身がない!」というエラーも出てました。
何も考えず、PHPのバージョンを上げてしまってエラーが出た場合、直ぐに下げましょう笑。PHPの切り替えはサーバーによりますが、かなり簡単に上げ下げが可能です。焦らず戻せば被害は最小限で済みます。
サーバーから「10月中にPHPを7.3に自動的に上げちゃうからね!」という通知が来ていたので急いで行った作業ですが、そんな通知が来ていて、5,6年見直しを行っていないという方は要注意です。
対応はお早めに。
カテゴリー : ホームページのメンテナンス