変数の初期化とNULL

PHP では変数を使用する際に事前の宣言は不要で、値を代入した時点で変数が生成され利用可能になります。ただし、値を一度も代入していない変数を参照すると、 NULL として扱われるとともに警告が表示される場合があります。ここでは PHP で変数が初期化されていない場合の扱いについて解説します。

初期化していない変数

PHP では変数名に値を代入することで変数として利用が可能となります。

$name = "Yamada";
echo $name;

もし値を代入していない変数を使用した場合、変数は NULL として扱われ、 PHP 8 の場合「Warning: Undefined variable」という警告が表示されます。

echo $name;

NULL は PHP のデータ型の一つで、値が存在しないことを表すために使用されます。 NULL 型の値として利用できるのは定義済みの値 NULL のみです。なお、大文字と小文字は区別されないため、Null や null と記述することもできます。

値を一度も代入していない変数を参照すると、 NULL として扱われます。ただし、この場合は未定義変数として警告が表示されます。なお、これは明示的に変数に NULL を代入した場合とは厳密には異なります。(未定義変数を参照すると NULL として扱われるが、実際に NULL が格納されているわけではない)。

変数に NULL を代入したあとでその変数を参照しても、警告は表示されません。

$name = NULL;
echo $name;
サンプルコード

では簡単なプログラムで試してみます。

<?php
echo $name."さん";

作成したプログラムを sample.php として保存しました。その後でコマンドプロンプトを起動し、次のように実行しました。

php sample.php

初期化していない変数

一度も定義していない変数を参照したため、警告「Warning: Undefined variable」が表示されました。

-- --

PHP で変数が初期化されていない場合の扱いについて解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。