定数
定数は、単純な値の識別子 (名前) です。名前が示すように、スクリプトの実行中に値を変更することはできません (定数ではない、いわゆるマジック定数を除く)。定数はデフォルトで大文字と小文字が区別されます。通常、定数識別子は常に大文字です。
定数名は、他の PHP タグと同じ命名規則に従います。有効な定数名は文字またはアンダースコアで始まり、その後に任意の文字、数字、またはアンダースコアが続きます。正規表現は次のように表されます: [a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*
例 #5 有効な定数名と無効な定数名
<p class="sycode"> <? php // 合法的常量名 define( " FOO " , " something " );define( " FOO2 " , " something else " );define( " FOO_BAR " , " something more " ); // 非法的常量名 define( " 2FOO " , " something " ); // 下面的定义是合法的,但应该避免这样做:(自定义常量不要以__开头) // 也许将来有一天PHP会定义一个__FOO__的魔术常量 // 这样就会与你的代码相冲突 define( " __FOO__ " , " something " ); ?> </p>
注: ここでの文字は、a ~ z、A ~ Z、および 127 ~ 255 (0x7f ~ 0xff) の ASCII 文字です。
スーパーグローバルと同様に、定数のスコープはグローバルです。定数は、スコープに関係なく、スクリプト内のどこからでもアクセスできます。関数の詳細については、変数スコープのマニュアルを参照してください。
define はグローバル定数を定義し、どこからでもアクセスできます。
const はクラスを定義するグローバル変数であり、その値は変更できません。
<p class="sycode"> <? php class say_const{ const CHARSET = ”中国”; publice function say_hello(){ echo slef::CHARSET; }} $const1 = new say_const()’ $const1 -> say_hello(); ?> </p>
他の説明として、次の詳細な説明を参照してください:
詳細な説明: 定数の前にドル記号 ($) はありません。定数は、define() 関数を使用してのみ定義できます。代入ステートメントを介して; 定数は、変数スコープの規則に関係なく、どこでも定義およびアクセスできます。定数の値は、スカラー データ (ブール値) のみを含めることができます。 、整数、浮動小数点数、および文字列) はリソース定数を定義しません。 関数 constant() を使用して、定数の値を読み取ることができます。 get_define_constants() は、未定義の定数が使用されている場合、必要なのは定数自体の名前であると想定します。文字列を使用した場合(CONSTANTは「CONSTANT」に相当します)、PHPの「マジック定数」レベルのエラーが発行されます。
---------------------------------------------- --- --------------------------------------------------- --- --------------------------------------------------- --- -------
マジック定数PHP は、実行するスクリプトに多数の事前定義された定数を提供します。ただし、多くの定数はさまざまな拡張ライブラリによって定義されており、これらの拡張ライブラリが動的にロードされるか、コンパイル時に組み込まれる場合にのみ表示されます。
コード内の位置に応じて値が変化する魔法の定数が 7 つあります。たとえば、__LINE__ の値は、スクリプト内でその値が配置されている行によって異なります。これらの特殊な定数は、次のように大文字と小文字が区別されません。
__LINE__ | ファイル内の現在の行番号。 |
__FILE__ | ファイルの完全なパスとファイル名。インクルードされたファイル内で使用された場合、インクルードされたファイルの名前を返します。 PHP 4.0.2 以降、__FILE__ には常に絶対パス (シンボリック リンクの場合は解決された絶対パス) が含まれますが、それより前のバージョンには相対パスが含まれる場合がありました。 |
__DIR__ | ファイルが配置されているディレクトリ。インクルードされたファイル内で使用された場合、インクルードされたファイルが配置されているディレクトリを返します。これは dirname(__FILE__) と同等です。ルート ディレクトリでない限り、ディレクトリ名には末尾のスラッシュは含まれません。 (PHP 5.3.0 の新機能) = |
__FUNCTION__ | 関数名 (PHP 4.3.0 の新機能)。 PHP 5 以降、この定数は定義されたとおりの関数名を返します (大文字と小文字は区別されます)。 PHP 4 では、この値は常に小文字です。 |
__CLASS__ | クラスの名前 (PHP 4.3.0 の新機能)。 PHP 5 以降、この定数は定義されたときのクラスの名前を返します (大文字と小文字は区別されます)。 PHP 4 では、この値は常に小文字です。 |
__METHOD__ | クラスのメソッド名 (PHP 5.0.0 で新しく追加されました)。定義されたとおりのメソッド名を返します (大文字と小文字が区別されます)。 |
__NAMESPACE__ | 現在のネームスペースの名前 (大文字と小文字が区別されます)。この定数はコンパイル時に定義されます (PHP 5.3.0 の新機能) |
echo __FILE__;
echo __CLASS__;
echo __file__;
?>
get_class() を参照してください。 vars ( )、file_exists()、および function_exists()。