array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'function.defined.php', 1 => 'defined', ), 'up' => array ( 0 => 'ref.misc.php', 1 => 'その他の関数', ), 'prev' => array ( 0 => 'function.define.php', 1 => 'define', ), 'next' => array ( 0 => 'function.die.php', 1 => 'die', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'reference/misc/functions/defined.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
defined — 指定した名前の定数が存在するかどうかを調べる
constant_name
で指定した定数が定義されているかどうかを調べます。
この関数は クラス定数 や 列挙型の case に対しても動作します。
注意:
変数が存在するかどうかを知りたければ、isset() を利用してください。defined() は 定数にしか適用できません。 関数が存在するかどうかを知りたければ、 function_exists() を利用してください。
constant_name
定数名。
例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)
?>