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/11) Laravel学習中に発生した「Undefined variable $_server」エラーをわかりやすく整理してみた

Last updated at Posted at 2025-12-10

はじめに

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

今回は、Laravel を学習している途中で遭遇した「Undefined variable」に関するエラーについて、原因と対処方法をまとめてみました

PHPでは 「グローバル変数」「スーパーグローバル変数」 など、似た名称の概念がいくつか登場します。エラー内容と一緒に整理していきます。

環境など

  • 自身:Laravel初学者
  • 使用パソコン:MacBook
  • Laravelバージョン:確か7

エラー内容

実際に発生したエラーはこちらです。

Warning: Undefined variable 
$_server in /var/www/tr_php/02/create_user.php 
on line 22 Warning: 
Trying to access array offset on value of type null 
in /var/www/tr_php/02/create_user.php on line 22

「Undefined variable(未定義の変数)」 と言われています。
つまり、PHPが「その変数、そもそも存在しませんよ」と怒っています。


グローバル変数とスーパーグローバル変数について

まず前提として、PHPでは2種類の性質の変数が登場します。

■ グローバル変数

  • 自分で定義する変数

  • 関数内から使うには global キーワードが必要
    (例)global $foo;

  • ファイル内でのスコープ(見える範囲)が制限される

■ スーパーグローバル変数

  • PHPに最初から組み込まれている特別な変数
  • 関数内外どこでも使える
  • 代表例
    $_GET
    $_POST
    $_SESSION
    $_COOKIE
    $_SERVER ← 今回の主役!

これらはすべて 大文字で書く 決まりがあります。


今回のエラーの原因

今回のコードを改めて見てみると……

修正前

if ($_server['request_method'] === 'post') {

ここで使っている変数名が $_server(全部小文字) になっているので、 大文字 に変えることがエラー解決に!


修正版コード

修正後

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

このように、変数名の大小文字を修正することでエラーが解消されます。


なぜ $_SERVER['REQUEST_METHOD'] を使うのか?

$_SERVER は、PHPが自動的に用意してくれる「サーバーやリクエストの情報のまとめ」です。

キー名 意味
REQUEST_METHOD POST / GET / PUT など、HTTPメソッド
REQUEST_URI アクセスされたパス
HTTP_USER_AGENT ブラウザ情報

今回使った REQUEST_METHOD
「フォームが POST で送信されたかどうか」 を判定したいときに使います。


コード解説

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

これは、

  • もしリクエストメソッドが POST なら
  • この中の処理を実行する

という意味で、フォーム送信でよく使われる基本構文です。

さいごに

今回のエラーは、$_SERVER を 小文字で書いてしまった ことが原因でした。

スーパーグローバル変数は「スーパー」と付くだけあって、PHPのどこからでも使える便利な変数です。
そのぶん、名前が正しいかどうか がとても重要になることをしりました。

スーパーグローバル変数の数自体は多くないので、
今回のようにトラブルに遭ったときに1つずつ覚えていくとで理解を深めていきたいと思いました。

「なぜこのエラーが起きたのか?」を考えるクセをつけてレベルアップしていきたいと思います

参考記事

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?