1. カスタム 定数
定数の値は、スカラー データ (boolean、integer、 フロートと 文字列) または ヌル。
定数を一度定義すると、再定義したり定義を解除したりすることはできません。
定義には 2 つの方法があります:
define() 関数を使用して定数を定義します
define('STATUS', 3); // 3 番目のパラメーターが設定されている場合true に設定すると、大文字と小文字は区別されません
echo STATUS;
定数を定義するには、constキーワードを使用してください
const NAME = 4;
echo NAME;
OK 機能を使う constant() 定数の値を取得します。
define()関数を使用して、特定の名前の定数が存在するかどうかを確認します。
2. クラス定数
クラス内で定数を定義できます。変数、クラス属性は使用できません。または他の操作 (関数呼び出しの結果など)。 しかし、PHP5.6 では、定数が拡張され、定数の計算が可能になり、数値、文字列リテラル値、および定数を含む式結果を使用して const 定数を定義できるようになりました。定数の値は配列にすることもできますが、変数にすることはできません。
クラス定数を定義するには、constキーワードのみを使用できます。
class MyClass { const AB = 2; public function showConstant(){ echo self::AB; } } echo MyClass::AB; $obj = new MyClass(); $obj -> showConstant(); MyClass::showConstant(); $className = 'MyClass'; echo $className::AB;
/** * 1、define(name,value,case_insensitive) 自定义全局常量, 默认大小写敏感 * 2、const 定义类常量。 * 3、常量名前不要使用”$” * 4、常量的命名一般全部使用大写字母。 */ //定义全局常量 LANGUAGE define('LANGUAGE','中国'); echo language;//language echo LANGUAGE;//中国 //定义全局常量 CN define('CN','中国',TRUE); echo CN;//中国 echo cn;//中国 //定义类常量 class ConstTest{ const VERSION = '1.0'; function ConstTest(){ //类内部使用“self::常量名”调用,不能使用$this echo 'self::VERSION='.self::VERSION; } } //实例化 ConstTest,目的是调用构造函数 new ConstTest(); //外部调用类常量,通过“类名::常量名”直接调用,无需实例化。 echo 'VERSION='.(ConstTest::VERSION); echo '<br>'; //array get_defined_constants ([ bool $categorize = false ] ) 返回所有已定义的常量 //print_r(get_defined_constants(true)); //bool defined ( string $name ) 检查该名称的常量是否已定义。 echo defined('cn')?'true':'false';
language 中国 中国 中国 self::VERSION=1.0 VERSION=1.0 true
以上がPHP カスタム定数とクラス定数の違いの分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。