PHP変数マジック
それを実行するために、任意のPHPスクリプトは、定義済みの定数の数を提供します。
しかし、多くの定数は、様々な拡張機能によって定義され、これらの拡張子が表示されますときにのみロード、または動的にロードされた、またはそれへのコンパイル時に含まれていました。
彼らが変更されたコード内の位置を変更すると8マジック定数とその値があります。
例えば、それは決定するために、スクリプトのラインに依存している__LINE__値。 次のようにこれらの特別な定数は、大文字と小文字を区別しません。
__LINE__
現在の行番号のファイル。
例:
<?php echo '这是第 “ ' . __LINE__ . ' ” 行'; ?>
上の例の出力は、次のとおりです。
这是第 “ 2 ” 行
__FILE__
ファイルのフルパスとファイル名。 インクルードファイルで使用される場合は、含まれるようにファイル名を返します。
PHP以降4.0.2以来、__ FILE__は常に絶対パスを(それがシンボリックリンクである場合、それは解析された絶対パスである)が含まれ、これ以前のバージョンで時々相対パスが含まれています。
例:
<?php echo '该文件位于 “ ' . __FILE__ . ' ” '; ?>
上の例の出力は、次のとおりです。
该文件位于 “ E:\wamp\www\test\index.php ”
__ DIR__
カタログファイルが配置されています。 ファイルに含まれている場合、ディレクトリがファイルに含まれて返されます。
これは、dirnameは(__ FILE__)と同等です。 それはルートディレクトリ、またはディレクトリ名でなければ末尾にスラッシュが含まれていません。 (PHP 5.3.0アドオン)
例:
<?php echo '该文件位于 “ ' . __DIR__ . ' ” '; ?>
上の例の出力は、次のとおりです。
该文件位于 “ E:\wamp\www\test ”
__FUNCTION__
関数名(PHP 4.3.0追加されました)。 それは5例(大文字と小文字を区別)で宣言されたようにPHPので、この定数は、関数名を返します。 PHP 4では、この値は常に小文字です。
例:
<?php function test() { echo '函数名为:' . __FUNCTION__ ; } test(); ?>
上の例の出力は、次のとおりです。
函数名为:test
__CLASS__
クラスの名前(PHP 4.3.0で追加されました)。 PHPので、この定数を返しクラス名が5(大文字と小文字を区別)からの時間として定義されています。
PHP 4では、この値は常に小文字です。 (このようなFooの\バーとして)宣言されている領域の役割を含むクラス名。 形質の__CLASS__も役割を果たして以降、PHP 5.4から注意してください。 形質方法で使用する場合、__ CLASS__形質メソッドは、クラスの名前を呼び出すことです。
例:
<?php <?php class test { function _print() { echo '类名为:' . __CLASS__ . "<br>"; echo '函数名为:' . __FUNCTION__ ; } } $t = new test(); $t->_print(); ?>
上の例の出力は、次のとおりです。
类名为:test 函数名为:_print
__TRAIT__
形質名(追加のPHP 5.4.0)。 PHP 5.4.0から開始し、PHPはコードの再利用と呼ばれる形質のメソッドを実装します。
(このようなFooの\バーとして)宣言されている領域の役割を含む形質名前。
継承メンバーはMyHelloWorld方法でSayWorld形質を挿入基本クラスから覆われています。 クラスで定義されてMyHelloWorld行動一貫したアプローチ。 優先順位は、クラスの現在の方法は、基本クラスのメソッドをカバーする形質法、方法及び形質を上書きします。
<?php class Base { public function sayHello() { echo 'Hello '; } } trait SayWorld { public function sayHello() { parent::sayHello(); echo 'World!'; } } class MyHelloWorld extends Base { use SayWorld; } $o = new MyHelloWorld(); $o->sayHello(); ?>
上の例の出力は以下となります。
Hello World!
__METHOD__
クラスのための方法(PHP 5.0.0で追加されました)。 この方法は、(大文字と小文字を区別)宣言されたとして名を返します。
例:
<?php function test() { echo '函数名为:' . __METHOD__ ; } test(); ?>
上の例の出力は、次のとおりです。
函数名为:test
__NAMESPACE__
現在の名前空間(大文字と小文字を区別)の名前。 この定数は、コンパイル時に定義されている(PHP 5.3.0で追加されました)。
例:
<?php namespace MyProject; echo '命名空间为:"', __NAMESPACE__, '"'; // 输出 "MyProject" ?>
上の例の出力は、次のとおりです。
命名空间为:"MyProject"