国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

PHP マジック変數(shù)

PHP は、実行するスクリプトに多數(shù)の事前定義された定數(shù)を提供します。

ただし、多くの定數(shù)はさまざまな拡張ライブラリによって定義されており、これらの定數(shù)は、これらの拡張ライブラリがロードされるとき、動的ロード後、またはコンパイル中に組み込まれたときにのみ表示されます。

コード內(nèi)の位置に応じて値が変化する魔法の定數(shù)が 8 つあります。

__LINE__

ファイル內(nèi)の現(xiàn)在の行番號。





__FILE__

ファイルの完全なパスとファイル名。インクルードされたファイル內(nèi)で使用された場合、インクルードされたファイルの名前を返します。

PHP 4.0.2 以降、__FILE__ には常に絶対パス (シンボリック リンクの場合は解決された絶対パス) が含まれますが、それより前のバージョンには相対パスが含まれる場合がありました。




__DIR__

ファイルが配置されているディレクトリ。インクルードされたファイル內(nèi)で使用された場合、インクルードされたファイルが配置されているディレクトリを返します。

dirname(__FILE__) と同等です。ルート ディレクトリでない限り、ディレクトリ名には末尾のスラッシュは含まれません。 (PHP 5.3.0 の新機(jī)能)



__FUNCTION__

関數(shù)名 (PHP 4.3.0 の新機(jī)能)。 PHP 5 以降、この定數(shù)は定義されたとおりの関數(shù)名を返します (大文字と小文字は區(qū)別されます)。 PHP 4 では、この値は常に小文字です。


__CLASS__

クラスの名前 (PHP 4.3.0 で新しく追加されました)。 PHP 5 以降、この定數(shù)は定義されたときのクラスの名前を返します (大文字と小文字が區(qū)別されます)


__TRAIT__

トレイト名 (PHP 5.4.0 の新機(jī)能)。 PHP 5.4.0 以降、PHP はトレイトと呼ばれるコード再利用の方法を?qū)g裝しています。


__METHOD__

クラスのメソッド名 (PHP 5.0.0 で新しく追加されました)。定義されたとおりのメソッド名を返します (大文字と小文字が區(qū)別されます)。


__NAMESPACE__

現(xiàn)在のネームスペースの名前 (大文字と小文字が區(qū)別されます)。この定數(shù)はコンパイル時に定義されます (PHP 5.3.0 の新機(jī)能)。

ファイルの現(xiàn)在の行番號を一つずつ説明していきます。インスタンス フルパスとファイル名。インクルードされたファイル內(nèi)で使用された場合、インクルードされたファイルの名前を返します。


PHP 4.0.2 以降、__FILE__ には常に絶対パス (シンボリック リンクの場合は解決された絶対パス) が含まれますが、以前のバージョンには

相対パスが含まれる場合がありました。

インスタンス

<?php
 header("Content-type:text/html;charset=utf-8");    //設(shè)置編碼
 echo '這是第 “ '  . __LINE__ . ' ” 行';
 
 ?>
プログラム実行結(jié)果:

「D:WWW11.php」のファイルが置かれているディレクトリにファイルが配置されます

__DIR__


。インクルードされたファイル內(nèi)で使用された場合、インクルードされたファイルが配置されているディレクトリを返します。

dirname(__FILE__) と同等です。ルート ディレクトリでない限り、ディレクトリ名には末尾のスラッシュは含まれません。 (PHP 5.3.0の新機(jī)能)

インスタンス

<?php
 header("Content-type:text/html;charset=utf-8");    //設(shè)置編碼
 echo '該文件位于 “ '  . __FILE__ . ' ” ';
 ?>

プログラムの実行結(jié)果:

ファイルは「D:WWW」にあります

__FUNCTION__


関數(shù)名 (PHP 4.3.0 の新機(jī)能)。 PHP 5 以降、この定數(shù)は定義されたとおりの関數(shù)名を返します (大文字と小文字は區(qū)別されます)。 PHP 4 では、この値は常に小文字です。

インスタンス

<?php
 header("Content-type:text/html;charset=utf-8");    //設(shè)置編碼
 echo '該文件位于 “ '  . __DIR__ . ' ” ';
 ?>

プログラム実行結(jié)果:関數(shù)名:funtext

__CLASS__

クラスの名前 (PHP 4.3.0 の新機(jī)能)。 PHP 5 以降、この定數(shù)は定義されたときのクラスの名前を返します (大文字と小文字は區(qū)別されます)。

PHP 4 では、この値は常に小文字です。クラス名には、それが宣言されているスコープが含まれます (例: FooBar)。 PHP 5.4 以降、__CLASS__ はトレイトに対しても機(jī)能することに注意してください。特性メソッド內(nèi)で使用される場合、__CLASS__ は特性メソッドを呼び出すクラスの名前になります。

インスタンス

<?php
header("Content-type:text/html;charset=utf-8");    //設(shè)置編碼
function funtext() {
    echo  '函數(shù)名為:' . __FUNCTION__ ;
}
funtext();
?>

プログラム実行結(jié)果:

クラス名:classtest

関數(shù)名:fun


__TRAIT__

トレイト名(PHP 5.4の新機(jī)能) .0)。 PHP 5.4.0 以降、PHP はトレイトと呼ばれるコード再利用の方法を?qū)g裝しています。

トレイト名には、それが宣言されるスコープが含まれます (例: FooBar)。

基本クラスから継承されたメンバーは、挿入された SayWorld トレイトの MyHelloWorld メソッドによってオーバーライドされます。その動作は、MyHelloWorld クラスで定義されたメソッドと一致しています。優(yōu)先順位としては、現(xiàn)在のクラスのメソッドが特性メソッドをオーバーライドし、特性メソッドが基本クラスのメソッドをオーバーライドします。

インスタンス

<?php
 header("Content-type:text/html;charset=utf-8");    //設(shè)置編碼
 class classtest {
     function fun() {
         echo '類名為:'  . __CLASS__ . "<br>";
         echo  '函數(shù)名為:' . __FUNCTION__ ;
     }
 }
 $t = new classtest();
 $t->fun();
 ?>

プログラムの実行結(jié)果:

Hello World!


__METHOD__

クラスのメソッド名 (PHP 5.0 で新しく追加されました。 0)。定義されたとおりのメソッド名を返します (大文字と小文字が區(qū)別されます)。

<?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();
 ?>

プログラムの実行結(jié)果:

関數(shù)名: test


__NAMESPACE__

現(xiàn)在の名前空間の名前 (大文字と小文字が區(qū)別されます)。この定數(shù)はコンパイル時に定義されます (PHP 5.3.0 の新機(jī)能)。

<?php
 header("Content-type:text/html;charset=utf-8");    //設(shè)置編碼
 function test() {
     echo  '函數(shù)名為:' . __METHOD__ ;
 }
 test();
 ?>

プログラム実行結(jié)果:

名前空間は「MyProject」です



學(xué)び続ける
||
<?php header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼 echo '這是第 “ ' . __LINE__ . ' ” 行'; ?>