defined
指定した名前の定数が存在するかどうかを調べる
説明
bool defined(string $constant_name
)
この関数は クラス定数 や 列挙型の case
に対しても動作します。
注意:
変数が存在するかどうかを知りたければ、isset
を利用してください。defined は
定数にしか適用できません。
関数が存在するかどうかを知りたければ、
function_exists を利用してください。
戻り値
constant_name
で指定した名前の定数が定義されている
場合に true
、その他の場合にfalse
を返します。
例
例1 定数のチェック
<?php
/* 引用符の使い方に注意してください。これは重要です。この例では
* 文字列 'TEST' が、定数 TEST の名前かどうかを調べています。*/
if (defined('TEST')) {
echo TEST;
}
interface bar {
const test = 'foobar!';
}
class foo {
const test = 'foobar!';
}
var_dump(defined('bar::test')); // bool(true)
var_dump(defined('foo::test')); // bool(true)
?>
例2 列挙型のcase をチェックする(PHP 8.1.0 以降)
<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}
var_dump(defined('Suit::Hearts')); // bool(true)
?>
参考
- define
- constant
- get_defined_constants
- function_exists
- 定数の節