defined

(PHP 4, PHP 5, PHP 7, PHP 8)

defined指定した名前の定数が存在するかどうかを調べる

説明

defined(string $constant_name): bool

指定した定数が存在し、定義されているかどうかを調べます。

この関数は クラス定数列挙型の case に対しても動作します。

注意:

変数が存在するかどうかを知りたければ、isset() を利用してください。defined()定数にしか適用できません。 関数が存在するかどうかを知りたければ、 function_exists() を利用してください。

パラメータ

constant_name

定数名。

戻り値

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)

?>

参考