ケース 1:
father.php は次のように定義されています:
コードをコピーします コードは次のとおりです:
$jack = 1000;
children.php次のように定義されます:
< ?php
require("father.php");
echo $jack."/n";
php Children.php
変更すると $jack =123 がコメントアウトされ、実行結果は 1000 になります。 $jack=123 を require("father.php"); の前に置くと、実行結果は 1000 になります。理解する: PHP は、説明されている場所と実行されている場所を解釈して実行します。 。 $jack のようなグローバル変数はグローバル変数です。たとえば、最初のケースでは、最初に使用したときは 1000 ですが、require
のときに実行して取得し、結果が 123 に変更されるため、実行結果の出力は次のようになります。 123.
ケース 2:
children.php コードは次のように変更されます:
コードをコピー
コードは次のとおりです: require("father.php");
関数 testJack(){
if(! isset($jack)){
echo '$jack は null'."/n"
}
}//testJack
testJack()> php Children.php
実行結果は次のようになります: $ jack は null つまり、testJack() で参照される $jack はローカル変数です。
global キーワードを使用する場合は、$jack がグローバル変数であることを宣言し、コードは次のように変更されます:
コードをコピーします
コードは次のとおりです:
require ("father.php");
関数 testJack(){ グローバル $jack; if(!isset($jack)){ echo '$jack は null'."/n"; '$jack は null ではありません'." /n";
}
}//testJack
testJack();
実行結果は $jack が null ではありません
Children.php コードは次のとおりです:
コードをコピーします
コードは次のとおりです:
require("father.php");
class JackTest{ public function testJack(); {
if(!isset($jack)){
echo '$ jack は null'."/n";
}else{ echo '$jack は null ではない' } }/ /testJack }
$jackTest = new JackTest();
$jackTest ->testJack()
?>
実行結果の出力: $jack が null であるためです。ローカル変数。
関数testJackの先頭にglobal $jack;を追加すると、$jack is not nullが出力されます。
分かりやすくなりました。
ケース 4:
パラメータとしてファイル名を動的にロードします。コードは次のとおりです:
コードをコピーします
コードは次のとおりです:
$casefile = $ _SERVER['argv'][1] ;
echo $casefile."/n";
echo $jack."/n";
php Children.php Father.php を実行します
結果は次のとおりです:
father.php
1000
つまり、動的ローダーは正常に実行されました。 。
ケース 5:
動的読み込みとクラス定義を組み合わせるには:
ディレクトリ関係は次のようになります:
|- c.php
|- Bfold - b.php
|- Afold - a.class.php ( 関数内部では ../Bfold/b.php を参照します)
つまり、クラス a.class は c.php の新機能であり、 a.class.php の関数には Bfold フォルダー内の b.php が必要です。これには ( ../Bfold/b.php) はエラーを報告します。警告: ...
現在 c.php ファイルを実行するようにサーバーに要求しているため、php が解析するとき、パスは c.php に対する相対パスになります。 (../Bfold/b.php) を (Bfold/b.php) に変更すると、エラーは表示されないはずです。
以下は、関数内での require_once (A.php) の使用を示すプログラム例です。
require_once の理解:
B.php で require_once(A.php); というステートメントが参照されているとします。 。
これは実際には、匿名ラムダ関数 A.php を呼び出して実行するのと同じです。以下に示すように:
C.php は関数呼び出しで B.php を必要とします----------》
B.php は通常のステートメントで A.php を必要とします----------》
A.php
今php を B.php と呼びます。B.php が通常のステートメントで require を使用して A.php を呼び出すと、A.php は A に関連するグローバル変数であるその変数を B.php 環境に登録します。 B.php はルート呼び出しファイルであるため、その実行環境はグローバル環境です。したがって、A.php ファイル内の変数は B.php で通常どおり使用できます。
ここで、php C.php を呼び出します。次に、C が関数内で require を使用して B.php を呼び出し、次に B が A を呼び出します。この呼び出しの過程で、B と A のルート オペレーティング環境は、 C の関数環境ですが、C の呼び出し関数が B と A の変数を使用したい場合は、方法がありません。
グローバル $a を使用して参照する場合、この場合 $a はグローバル変数に属さないため、参照できません。
$a を使用して参照すると、$a はローカル変数として扱われ、参照できなくなります。
http://www.bkjia.com/PHPjc/327466.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/327466.html技術記事ケース 1: Father.php は次のように定義されます。 コードを次のようにコピーします。 ?php $jack = 1000; ?children.php は次のように定義されます。 $jack."/n"; ?php childr...