多个包含后的PHP变量范围

时间:2014-11-17 18:20:06

标签: php

让我们说我有一个页面index.php,并在其中执行:

require_once("file1.php");
echo $myVar;

在file1.php我有:

require_once("file2.php");

并且在file2.php中我有

$myVar = "test";

执行此脚本后,index.php无法访问$ myVar并输出未定义的变量。 有什么理由吗?

1 个答案:

答案 0 :(得分:2)

require / include就好像所包含文件的内容被字面切割/粘贴到include指令所在的位置。您的变量将起作用,除非在include调用之间发生其他事情。

e.g。

core.php中:

<?php
$foo = 'bar';

file1.php:

include('core.php');
$foo = 'baz';

file2.php

echo $foo; // undefined
include('core.php');
echo $foo; // outputs bar
include('file1.php');
echo $foo; // outputs baz