クラス内で常に変更されない値を定数として定義できます。定数を定義および使用するときに $ 記号を使用する必要はありません。
定数の値は固定値である必要があり、変数、クラス属性、数学演算や関数呼び出しの結果であってはなりません。
定数はインターフェースでも定義できます。その他の例については、ドキュメントのインターフェイスのセクションを参照してください。
PHP 5.3.0 以降、変数を使用してクラスを動的に呼び出すことができます。ただし、この変数の値をキーワード (self、parent、static など) にすることはできません。
例 #1 クラス定数を定義して使用する
<?php class MyClass { const constant = 'constant value'; function showConstant() { echo self::constant . "\n"; } } echo MyClass::constant . "\n"; $classname = "MyClass"; echo $classname::constant . "\n"; // 自 5.3.0 起 $class = new MyClass(); $class->showConstant(); echo $class::constant."\n"; // 自 PHP 5.3.0 起 ?>
例 #2 静的データの例
<?php class foo { // 自 PHP 5.3.0 起 const bar = <<<'EOT' bar EOT; } ?>
ヒアドキュメントとは異なり、nowdoc はあらゆる静的データで使用できます。
注:
Nowdoc サポートは PHP 5.3.0 で 追加されました。
注: 他のオブジェクト指向プログラミング言語とは異なり、phpでは、クラスはプロパティ変数にfinal修飾子を使用できません。
プロパティを定数として宣言したい場合は、const キーワードを使用できます。変数名の接頭辞としてドル記号を使用したり、アクセス修飾子を使用したりする必要はありません。定数とは、変数にアクセスできるが、変数の値を変更できないことを意味します。たとえば、次のコードは定数属性 con_var を宣言します。
<?php class Foo{ const con_var="常量属性的值不能被修改<br />"; public function method_a(){ echo (self::con_var); } } echo(Foo::con_var); $myFoo=new Foo(); echo ($myFoo->method_a()); ?>
定数属性にはオブジェクトを使用してアクセスできませんが、クラス本体内では「self::constant name」を使用でき、クラス本体の外では「self::constant name」を使用できます。クラス本体には、「クラス名」::定数名を使用できます。
以上がPHPのクラス定数の使い方は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。