====== 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}}