「compact(): Undefined variable」の解決法

製作 プログラム

最終更新日:2023/09/06

ラムネグから一言:寝る前に読むとくだらなすぎて逆に寝れると好評なすごい適当なブログをこっちではじめてます.

php、というかlaravelで遊んでる際に「compact(): Undefined variable」というエラーが開発環境ではでなくて、本番環境だけで出るという事態に。

今回はphpというかlaravelで「compact(): Undefined variable」というエラーが出たときの解決方法とその原因について書きます。

まずは解決方法

このエラーは読んで字のごとく、宣言されてない変数をcompactに渡してるよ!だめだよ!って言うエラー。なのでcompact()内で渡してる変数について、もし値が入らないことがある変数についてはあらかじめnullを代入しておくなりすればOK。

これで「compact(): Undefined variable」は出なくなります。

理由

この「compact(): Undefined variable」というエラー、なぜ開発環境ではでなくて本番環境だけで出たのか、という原因を。

調べたところcompact()関数はphp7.2までは宣言されていない変数は無視する仕様だったんですが、php7.3からは宣言されてない変数だと「compact(): Undefined variable」とエラーを吐くようになったとのこと。

確かに開発環境はphp7.2で本番環境は7.3だったのでつじつまの合う原因でした。

まとめ

今回はphp、そしてlaravelで「compact(): Undefined variable」というエラーが出たときの解決方法とその理由を書きました。

まとめるとcompact()はphp7.3以上だと宣言されていない変数を渡すとエラーを吐くんできちんとnullなりなんなり変数の宣言だけはしておこう、という感じ。

ただ個人的にはそもそもphpのバージョン上げないといけないなーというのが大きいです。遊んでるだけだから別にいいんだけれど、やっぱり最新バージョンに上げておく方がこういうエラーが減ると思うので。

【おしらせ、というか完全なる宣伝】

文体がもうぜんぜん適当すぎてあれだけどものすごい自由に書いてるブログ「檸檬だくだく」もよろしく.寝る前に読める恐ろしくくだらないやつです.

こんなにも一ミリも目を引かれないタイトルを取り扱ってます: ココア20g / ハイチュウとかってさ / なぜ米と小麦を食べようと思ったのかの謎 /