-1

インクルードされたファイルのコード ブロックは、呼び出し元のスクリプトが最初に開始されたとき、または include ステートメントに到達したときに「グラブ」されますか? たとえば、次のとおりです。

// execute many lines of code
sleep(10);
// do file retrievals that takes many minutes
include('somefile.php');

元のコードが実行 (開始) された場合、その瞬間に somefile.php のコード ブロックがメモリに置かれるか、include ステートメントに到達するまで置かれないか?

4

3 に答える 3

1

include ステートメントが実行/実行されたとき。

PHP は 1 行ずつ実行されます。そのため、プロセスが に到達すると、includeその魔法が実行されます。

例えば:

//some code
//some more code
//even more
include('file.php');//now all of file.php's contents will sit here 
//(so the file will be included at this point)

http://php.net/manual/en/function.include.phpを参照してください

于 2012-09-24T00:49:51.767 に答える
0

includeステートメントに到達すると、ファイルが含まれます

実行

a.php

var_dump("a",time());
// execute many lines of code
sleep(10);
// do file retrievals that takes many minutes
include('b.php');

b.php

var_dump("b",time());

出力

string 'a' (length=1)
int 1348447840
string 'b' (length=1)
int 1348447850
于 2012-09-24T00:51:47.300 に答える
-1

次のコードを使用してテストできます。

<?php

echo 'Before sleep(): ' . $test . ' | ';

sleep(10);

echo 'After sleep(): ' . $test . ' | ';

include('inc_file.php');

echo 'After include(): ' . $test;

?>

inc_file.phpに次のコードがあるとします。

<?php

$test = 'Started var';

?>

出力は次のようになります。

スリープ前(): | sleep() の後: | include() の後: 開始変数

したがって、 inc_file.phpコンテンツは include() が呼び出された後にのみ利用可能になると言えます。

PHPドキュメントで明確な説明が見つかりませんでしたが、@navnavが言ったことは満足のいくものだと思います。

于 2012-09-24T01:15:03.737 に答える