-1

当调用脚本首次启动或到达包含语句时,包含文件的代码块是否被“抓取”?举个例子:

// 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 是逐行执行的。所以,当进程到达 时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到达语句时包含该文件

执行

一个.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';

?>

输出将是:

在睡眠()之前:| 睡眠后():| 在 include() 之后:开始 var

所以我们可以说inc_file.php 的内容只有在 include() 被调用后才可用。

我没有在 PHP 文档中找到明确的解释,但 @navnav 所说的我认为是令人满意的。

于 2012-09-24T01:15:03.737 回答