Copy & Paste Engineer

【PHP】クラス定数の存在チェック

【PHP】クラス定数の存在チェック

PHPでクラス定数の存在チェックをする方法

defined を使う

defined 関数を使用することでチェックが可能です。

<?php
// Sample
class Sample
{
    const CONST_SAMPLE = 'sample';
}

// クラスを直接指定
if ( defined( 'Sample::CONST_SAMPLE' ) ){
    echo 'Sample::CONST_SAMPLE defined';
}

// クラス名の変数
$className = Sample::class;
if ( defined( "$className::CONST_SAMPLE" ) ){
    echo '$className::CONST_SAMPLE defined';
}

// クラスオブジェクト
$classObj = new $className();
if ( defined( get_class($classObj).'::CONST_SAMPLE' ) ){
    echo '$classObj::CONST_SAMPLE defined';
}

参考