1. ASHIRIのふろんとあれ、なんだっけぇ
  2. なんだっけぇ一覧
  3. PHP
  4. 【PHP】突然の[Warning: Undefined variable]エラー表示

【PHP】突然の[Warning: Undefined variable]エラー表示

CATEGORY : PHP
TAGS :
【PHP】突然の[Warning: Undefined variable]エラー表示 【PHP】突然の[Warning: Undefined variable]エラー表示
今回は、それくらい知ってますと言われる方も多いと思いますが、最近(というかある境というべきか)あるあるphpのエラーコードのひとつであります【Warning: Undefined variable ~】への発生原因と対処について、簡単ではありますがご紹介をさせていただきます。
目次

    あるあるバージョンアップによるエラー

    以前、お世話になっている広告代理店様より連絡があり「弊社で納品しましたサイトなのですが、クライアント様より連絡があり、お問合せページ冒頭に見た事もない英文が出ている、これはなんだ!と連絡がありまして。どうしたらよいかわからず一度確認いただく事は可能でしょうか・・」と突然のご相談。確認すると

    Warning: Undefined variable 〇〇〇〇 in ▲▲▲▲ on line 00

    これは読んで字のごとく、Undefined variable = 参照しようとした変数○○○○は、未定義です。とPHPが気をつかって教えてくれています。ではなぜ急にこのようなエラーが表示したのでしょう。

     

    PHP7からPHP8へのバージョンアップ

    結論からいいますと、クライアント様が連絡なしに契約されているレンタルサーバのPHPのバージョンを7から8にされたのが原因です。納品されたタイミングはPHP7の段階、つまり「プログラム=書き方に対して優しかった」しかし、PHP8はPHP7と違い、「書き方に対して、より厳格となった」という事で伝わるかと思います。

     

    解決方法について

    ご相談のあったお問合せフォームはわりとシンプルでしたので、入力ページからinputにてpostされた確認ページ内のif文に、isset=変数がセットされているかを付け加える処理と入力ページの空処理にempty関数で対処となりました。

    
    if($変数){
      //処理
    }
    

    対処方法

    
    if(isset($変数)){
      //処理
    }
    

     

    【 入力ページ 空処理 】

     

    
    if(($error['要素名']) {
      //処理
    });
    

    対処方法

    
    if(!empty($error['要素名']) { //empty関数に省略形「!」 を加えて、エラー構文処理
      //処理
    });
    

     

    こちらのご相談はこれだけですみましたが、バージョンアップにより他にも変更された箇所が多々
    ありますので、こちらのPHPマニュアルをご参考にしてください。

     

    まとめ

    いかがでしたでしょうか。今回はPHP7からPHP8へのバージョンアップにより起こりえる基本エラーについて、ご紹介させていただきました。案件管理や顧客管理エンジンなりレガシーなシステムのまま使用されている企業様にとっては、今後もPHP9など引き続きバージョンアップによりリニューアルに近い、ハイレベルな調整は多々あると思われます。(中・大規模システムであれば、レンタルサーバはしようしていないと思いますが。)うちの管理システムはどうなのかなと思われる方がもしおりましたら、ご担当されたエンジニアにご連絡・ご質問されることをおススメいたします。

    以上となります。できる限りわかりやすく伝えようとしても書くのは難しいです。
    コードや記事の書き方について気になるところがあれば、アドバイスいただけると嬉しいです。

    【PHP】突然の[Warning: Undefined variable]エラー表示
    CATEGORY : PHP
    TAGS :

    アシリソリューション

    アシリソリューション

    アシリ・ソリューション

    要件定義からブラッシュアップ/実装運用まで一貫して担当。また内部対策を中心に、GTM・GA4・Looker Studioと分析・改善案の策定も進めています。北緯43度マルチエンジニア

    最近のなんだっけぇ

    1. 【javascript基礎】自動見積フォームの仕組みを理解する

      【javascript基礎】自動見積フォームの仕組みを理解する

    2. 【Node基礎】APIエンドポイントの保護を理解する

      【Node基礎】APIエンドポイントの保護を理解する

    3. 【Node基礎】RESTful API を理解する

      【Node基礎】RESTful API を理解する

    4. 【Vue基礎】Vue Routerのネストを理解する

      【Vue基礎】Vue Routerのネストを理解する

    5. 【Vue基礎】v-onディレクティブを理解する

      【Vue基礎】v-onディレクティブを理解する

    6. 【Vue基礎】v-modelディレクティブを理解する

      【Vue基礎】v-modelディレクティブを理解する

    1. API
    2. computed
    3. css
    4. ECMA
    5. javascript
    6. jquery
    7. Node
    8. php
    9. reactive
    10. reduce メソッド
    11. ref
    12. sass
    13. SSH
    14. v-bind
    15. v-on
    16. Vue
    17. Vディレクティブ
    18. wordpress
    19. セキュリティ対策
    20. 入れ子
    21. 繰り返し処理
    22. 関数