{php定数}
8252 ワード
定数
定数は単純な値の識別子(名前)です.名前が示すように、スクリプトの実行中にこの値を変更することはできません(いわゆるマジック定数を除き、実際には定数ではありません).定数のデフォルトは大文字と小文字が敏感です.通常、定数識別子は常に大文字です.
定数名とその他のPHPラベルは、同じ命名規則に従います.合法的な定数名はアルファベットまたは下線で始まり、後ろには任意のアルファベット、数字または下線が付いています.正規表現では、[a-zA-Z_x 7 f-xff][a-zA-Z 0-9_x 7 f-xff]*
Example#5合法と不法の定数名
Note:ここで、アルファベットはa-z、A-Z、および127から255(0 x 7 f-0 xff)までのASCII文字です.
superglobalsと同様に定数の範囲は大域的である.役割ドメインを管理することなく、スクリプトの任意の場所で定数にアクセスできます.詳細については、マニュアルの変数の範囲を参照してください.
defineはグローバル定数を定義し、どこでもアクセスできます.constはクラスを定義するグローバル変数であり、その値を変更することはできません.
その他の説明として、次の拡張を参照してください.拡張読解: 定数の前に米ドル記号($); 定数はdefine()関数でしか定義できず、付与文では使用できない. 定数は変数範囲のルールを無視してどこでも定義・アクセスできる. 定数は一旦定義すると再定義されないか、または定義を取り消すことができない. 定数の値はスカラーのみ. 定数はスカラーデータのみ含み、resource定数は定義しない. 定数の値は関数constant()で読み取ることができる.get_defined_constants()は、定義された定数のリストをすべて取得することができる. 未定義の定数を使用した場合、PHPはその定数そのものの名前を想定し、文字列で呼び出すように(CONSTANTは「CONSTANT」に対応)E_NOTICEレベルのエラーが発生する. PHPの「マジック定数」
----------------------------------------------------------------------------------------------------------------------------------------------------------
マジック定数
PHPが実行する任意のスクリプトに大量の定義済定数を提供しています.しかし、多くの定数は異なる拡張ライブラリによって定義されており、これらの拡張ライブラリがロードされたときにのみ表示されるか、動的にロードされた後、コンパイル時にすでに含まれています.
7つのマジック定数があり、それらの値はコード内の位置が変化するにつれて変化します.例えば_LINE__の値は、スクリプト内のローに依存して決定されます.これらの特殊な定数は、大文字と小文字を区別しません.次のようにします.
いくつかのPHPの「マジック定数」
名前
説明
__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 __CLASS__;
echo __file__;?>
参照get_class(),get_object_vars(),file_exists()およびfunction_exists().
定数は単純な値の識別子(名前)です.名前が示すように、スクリプトの実行中にこの値を変更することはできません(いわゆるマジック定数を除き、実際には定数ではありません).定数のデフォルトは大文字と小文字が敏感です.通常、定数識別子は常に大文字です.
定数名とその他のPHPラベルは、同じ命名規則に従います.合法的な定数名はアルファベットまたは下線で始まり、後ろには任意のアルファベット、数字または下線が付いています.正規表現では、[a-zA-Z_x 7 f-xff][a-zA-Z 0-9_x 7 f-xff]*
Example#5合法と不法の定数名
<?
php
//
define(
"
FOO
"
,
"
something
"
);
define(
"
FOO2
"
,
"
something else
"
);
define(
"
FOO_BAR
"
,
"
something more
"
);
//
define(
"
2FOO
"
,
"
something
"
);
//
, :( __ )
//
PHP __FOO__
//
define(
"
__FOO__
"
,
"
something
"
);
?>
Note:ここで、アルファベットはa-z、A-Z、および127から255(0 x 7 f-0 xff)までのASCII文字です.
superglobalsと同様に定数の範囲は大域的である.役割ドメインを管理することなく、スクリプトの任意の場所で定数にアクセスできます.詳細については、マニュアルの変数の範囲を参照してください.
defineはグローバル定数を定義し、どこでもアクセスできます.constはクラスを定義するグローバル変数であり、その値を変更することはできません.
<?
php
class
say_const{
const
CHARSET
=
” ”;
publice function say_hello(){
echo slef::CHARSET;
}
}
$const1
=
new
say_const()’
$const1
->
say_hello();
?>
その他の説明として、次の拡張を参照してください.
----------------------------------------------------------------------------------------------------------------------------------------------------------
マジック定数
PHPが実行する任意のスクリプトに大量の定義済定数を提供しています.しかし、多くの定数は異なる拡張ライブラリによって定義されており、これらの拡張ライブラリがロードされたときにのみ表示されるか、動的にロードされた後、コンパイル時にすでに含まれています.
7つのマジック定数があり、それらの値はコード内の位置が変化するにつれて変化します.例えば_LINE__の値は、スクリプト内のローに依存して決定されます.これらの特殊な定数は、大文字と小文字を区別しません.次のようにします.
いくつかのPHPの「マジック定数」
名前
説明
__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 __CLASS__;
echo __file__;?>
参照get_class(),get_object_vars(),file_exists()およびfunction_exists().