0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

(12/12) Laravel学習中に遭遇した「Undefined constant」エラー。大文字・小文字の違いが原因

Last updated at Posted at 2025-12-11

はじめに

アドベントカレンダー12/12、12記事目になります。

今回は Laravel を学習している中で遭遇した、
「Undefined constant」エラー について、原因と解決方法をまとめてみました。

とても単純な書き間違いが原因でしたが、PHP を学ぶ上で重要な気づきだったので、
同じように Laravel × PHP を勉強している人の参考になれば嬉しいです。

環境

  • 執筆者:Laravel初学者
  • Laravelバージョン:7
  • 使用パソコン:MacBook

エラー内容

実際に表示されたエラーはこちらです。

Fatal error: Uncaught Error: 
Undefined constant "filter_validate_email" in /var/www/tr_php/02/create_user.php:41 
Stack trace: #0 {main} thrown in /var/www/tr_php/02/create_user.php on line 41

エラー内容の意味

エラー内容の意味

filter_validate_email という “定数” は存在しません。

PHPでは、

  • 大文字で書く → 「定義済みの定数」
  • 小文字で書く → 単なる「文字列 or 変数名扱い」

になります。
つまり…

filter_validate_email    存在しない定数として扱われエラー
FILTER_VALIDATE_EMAIL    PHP が用意した正しい定数

という違いでエラーが発生していました。


どう解決したのか?

問題となったコードはこちらになります

✖変更前

  if (!filter_var($mail_address, filter_validate_email)) {
    $errors[] = 'メールアドレス形式で入力してください';
  }

〇変更後

if (!filter_var($mail_address, FILTER_VALIDATE_EMAIL)) {
    $errors[] = 'メールアドレス形式で入力してください';
}

修正ポイントは「大文字・小文字」です。
PHPのフィルター機能である FILTER_VALIDATE_EMAIL大文字の定数 として定義されています


詳細な解説

filter_var() とは?

filter_var() は入力値を検証(バリデーション)したいときに使う関数です。

filter_var(検証したい値, フィルター定数)

フィルター定数の部分で、何をチェックするのかを指定します

FILTER_VALIDATE_EMAIL とは?

PHP にあらかじめ用意されている「定数」で、
メールアドレス形式として正しいかどうかを検証できます。

  • 正しい形式 → メールアドレスを返す
  • 間違っている → false を返す

PHP が標準で提供している定数なので、必ず 大文字で書く必要があります。

さいごに

今回のエラーは、とても単純な「大文字・小文字の書き間違い」が原因でした。

以前学んだスーパーグローバル変数($_SERVER と $_server の違いと同じ)にも共通していて、
「正しい表記かどうか」 を意識することの大切さを改めて実感しました。

Laravel 公式ドキュメントを最初からすべて理解するのは難しいですが、
エラーに遭遇するたびに調べて知識を積み重ねていくことが、結果的に大きな学びになると感じています。

今回の記事が、同じように Laravel や PHP を学習している方のヒントになれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?