ホームページ >バックエンド開発 >PHPチュートリアル >PHP に関する注意事項には変数スコープが含まれます

PHP に関する注意事項には変数スコープが含まれます

WBOY
WBOYオリジナル
2016-06-23 13:36:24863ブラウズ

著者: zhanhaiiliang 日付: 2015-04-17

まず、include を読んでください。これは、「include に含まれるコードは、include が配置されている行の変数スコープを継承する」ことを強調しています。

ファイルがインクルードされるとき、ここで、インクルードされたコードは、インクルード行の変数スコープを継承します。その時点から、呼び出し側ファイルのその行で使用可能な変数は、呼び出されたファイルでも使用できるようになります。ただし、インクルード ファイルで定義されたすべての関数とクラスにはグローバル スコープがあります。

これは、インクルード内のコードは、その行でアクセスできるすべての関連変数にアクセスできることを意味します。

以下のように、非常に奇妙な書き方を検証するために test.php test1.php を書きます:

test.php

<?phpclass A {     public function __construct() {        include 'test1.php';    }   }$a = new A();var_dump($a);

test1.php

<?php                                                                                    $this->a = 1;                                                                                 $this->b = 2; 

実行出力は次のとおりです:

object(A)#1 (2) {  ["a"]=>  int(1)  ["b"]=>  int(2)}

これは、 include ファイル コード内のコードは、include 行の変数スコープを継承しており、$this 変数にアクセスできます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。