【PHP】defined関数で定義済み定数を確認する方法

PHPプログラミングを行う上で、定数が定義されているかをチェックしたい場合、defined関数を使います。defined関数は、条件分岐などで活用できる便利な関数です。

そこで今回は、defined関数の使い方について解説していきます。また、defined関数とセットで覚えておきたい関数も紹介していくので、ぜひご覧ください。

PHPのdefined関数とは

PHPのdefined関数とは、指定した名前の定数が存在するかを調べる関数です。
単純に定数名のチェックに使うこともありますが、定数の存在有無を条件分岐の判定に使うのが一般的な利用方法です。

なお、変数の存在チェックには「isset関数」を使い、関数の存在チェックには「function_exists関数」を使います。使い分けが必要となるので、間違えて覚えないように注意しましょう。

PHPのdefined関数の書き方

PHPプログラミングでdefined関数は、次のように記述して使うことできます。

defined関数は、指定した定数名が定義されている場合には「true」を返し、定義されていない場合には「false」を返します。なお、指定するのは定数ではなく、定数名であることに注意しましょう。

PHPのdefined関数を使って定数を確認する

それでは実際に、PHPのdefined関数を使って、定数が定義されているかの確認をしてみましょう。

出力結果
MAXSIZE:100
MINSIZE:未定義

上記サンプルコードでは、定数「MAXSIZE」は定義していますが、定数「MINSIZE」は定義されていません。そのため、defined関数の引数に「MAXSIZE」を指定した場合には「true」を返しますが、引数に「MINSIZE」を指定した場合には「false」を返します。

定数はdefine関数で定義する

前述したように、PHPで定数を定義したいときはdefine関数を使用します。そこで、define関数の使い方についても、簡単に紹介していきましょう。

define関数の第一引数には定数名を指定し、第二引数にはその定数に定義する値を指定します。

第三引数にtrueを指定すると定数名の大文字と小文字を区別しなくなりますが、こちらは非推奨です。基本的には省略して、定数名の大文字と小文字を区別するようにしましょう。

なお、定数名は大文字で表記することが一般的です。PHPプログラミングの暗黙のルールといってもいいでしょう。

それでは、実際にdefine関数で定数を定義したときの動作についても確認してみましょう。

出力結果
定数AAAの出力
A
定数BBBの出力
B
B

上記の通り、定数「AAA」に定義した値は、定数「aaa」では出力されず、実際にはエラーが返ってきます。しかし、定数「BBB」には第三引数で「true」を指定しているので、定数値の出力が行われます。ただし、こちらも非推奨の使い方なので、実際には警告メッセージが出力されます。

PHPのconstant関数で定数値を取得する

PHPのdefined関数は、定数が定義されているかのチェックをできます。しかし、定数の値を取得することはできません。そこで、もし定数の値を取得したい場合には、constant関数を使って、定数の値を取得するようにしましょう。

それでは実際に、constant関数を使って定数の値を取得してみます。

出力結果
定数指定:100
constant関数:100

上記のサンプルコードの通り、constant関数を使って定数を値を取得し、出力することができました。

しかし、上記のコードではconstant関数を使う意味がないと感じるかもしれません。実際にconstant関数を使うのは、定数名が定まっていない場合などに使うのがおすすめです。

出力結果
第1回 チャンピオン:山田くん
第2回 チャンピオン:鈴木さん

上記サンプルコードの通り、constant関数を使うことで定数名を簡単に指定することが可能になりました。もっと複雑な処理になれば、ループ処理内で指定する定数名を変えて、多くの定数の値もまとめて取得できます。

ただし定数名やクラス名など、ソースコードのルール付けがしっかりと決められたプログラムでなければ、上手く活用するのは難しいかもしれません。

まとめ

PHPのdefined関数を使えば、定数が定義されているかのチェックを行うことができます。

defined関数の書き方は、引数にチェックしたい定数名を指定するだけなので、簡単に使うことができます。一般的な使い方としては、条件分岐などで利用されている関数です。

なお、定数を定義するときにはdefine関数を使い、定義された定数の値を取得したいときにはconstant関数を使います。これらの関数を理解し、使いこなすことができれば、プログラマーとして、1つ上のレベルに上がることができるでしょう。

BLOGコンテンツをパーソナライズします

あなたは現在「プログラミング学習者」ですか?