====== 03 自動で定義済みの定数 ======
自動的に定義される定数(マジカル定数)が 8 つあります。
^ 名前 ^ 説明 ^
| __LINE__ |ファイル上の現在の行番号。|
| __FILE__ |ファイルのフルパスとファイル名 (シンボリックリンクを解決した後のもの)。 \\ インクルードされるファイルの中で使用された場合、インクルードされるファイルの名前が返されます。|
| __DIR__ |そのファイルの存在するディレクトリ。 \\ include の中で使用すると、 インクルードされるファイルの存在するディレクトリを返します。 \\ つまり、これは dirname(__FILE__) と同じ意味です。 \\ ルートディレクトリである場合を除き、ディレクトリ名の末尾にスラッシュはつきません。|
| __FUNCTION__ |関数名。|
| __CLASS__ |クラス名。 \\ クラス名には、そのクラスが宣言されている名前空間も含みます (例 Foo\Bar)。 PHP 5.4 以降では、__CLASS__ がトレイトでも使えることに注意しましょう。トレイトのメソッド内で __CLASS__ を使うと、そのトレイトを use しているクラスの名前を返します。|
| __TRAIT__ |トレイト名 トレイト名には、宣言された名前空間も含みます (例 Foo\Bar)。|
| __METHOD__ |クラスのメソッド名。|
| __NAMESPACE__ |現在の名前空間の名前|
[[http://php.net/manual/ja/language.constants.predefined.php|自動で定義済みの定数]]
===== 例1. =====
".__LINE__."\n";
echo "__FILE__ -> ".__FILE__."\n";
echo "__DIR__ -> ".__DIR__."\n";
echo test_function();
function test_function(){
$res = '';
$res .= "__FUNCTION__ -> ".__FUNCTION__."\n";
return $res;
}
?>
$ php test_01.php
__LINE__ -> 3
__FILE__ -> /home/matsui/test.php
__DIR__ -> /home/matsui
__FUNCTION__ -> test_function
===== 例2. =====
test_mess_01();
$class->test_mess_02();
$class->test_mess_03();
class TestClass {
function test_mess_01() {
echo "__CLASS__ -> ".__CLASS__."\n";
}
function test_mess_02() {
echo "__METHOD__ -> ".__METHOD__."\n";
}
function test_mess_03() {
echo "__NAMESPACE__ -> ".__NAMESPACE__."\n";
}
}
$ php test_02.php
__CLASS__ -> My\Space\TestClass
__METHOD__ -> My\Space\TestClass::test_mess_02
__NAMESPACE__ -> My\Space
{{tag> php:syntax}}