ホームページ >バックエンド開発 >PHPチュートリアル >PHPマジック定数の使い方
マジック定数は、PHP が実行するスクリプトに提供する多数の事前定義された定数です。ただし、多くの定数はさまざまな拡張ライブラリによって定義されており、これらの拡張ライブラリが動的にロードされるか、コンパイル時に組み込まれるかによってロードされるときにのみ表示されます。以下では、PHP でのさまざまなマジック定数の使用方法を詳しく紹介します。
推奨チュートリアル: PHP ビデオ チュートリアル
__LINE__
ファイル内の現在の行番号。
<?php echo '这是第 " ' . __LINE__ . ' " 行'; ?>上記の例の出力結果は次のとおりです:
这是第 “ 2 ” 行
### ####################################__ファイル__##########
ファイルの完全なパスとファイル名。インクルードされたファイル内で使用された場合、インクルードされたファイルの名前を返します。
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 ”
##関数名 (PHP 4.3.0 で新たに追加)。 PHP 5 以降、この定数は定義されたとおりの関数名を返します (大文字と小文字は区別されます)。 PHP 4 では、この値は常に小文字です。
<?php function test() { echo '函数名为:' . __FUNCTION__ ;}test(); ?>上記の例の出力結果は次のとおりです:
函数名为:test
##__CLASS__
PHP 4 では、この値は常に小文字です。クラス名には、それが宣言されているスコープが含まれます (例: Foo\Bar)。 PHP 5.4 以降、__CLASS__ はトレイトに対しても機能することに注意してください。特性メソッド内で使用される場合、__CLASS__ は特性メソッドを呼び出すクラスの名前になります。 <?php
class test {
function _print() {
echo '类名为:' . __CLASS__ . "<br>";
echo '函数名为:' . __FUNCTION__ ;
}
}
$t = new test();
$t->_print();
?>
上記の例の出力結果は次のとおりです:
类名为:test
函数名为:_print
__TRAIT__
トレイト名には、それが宣言されているスコープが含まれます (たとえば、Foo\Bar)。 基本クラスから継承されたメンバーは、挿入された SayWorld トレイトの MyHelloWorld メソッドによってオーバーライドされます。その動作は、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"
以上がPHPマジック定数の使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。