当调用脚本首次启动或达到include语句时,是否“抓取”包含文件的代码块?举个例子:
// execute many lines of code
sleep(10);
// do file retrievals that takes many minutes
include('somefile.php');
如果执行(开始)原始代码,somefile.php的代码块是否会在该瞬间放入内存,直到达到include语句为止?
答案 0 :(得分: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)
答案 1 :(得分: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
答案 2 :(得分:-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
所以我们可以说只有在调用include()之后才能使用 inc_file.php 内容。
我在PHP文档中没有找到明确的解释,但@navnav说我认为是满意的。