php包含(include/require)文件时的作用域

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php包含(include/require)文件时的作用域相关的知识,希望对你有一定的参考价值。

当一个php脚本被require/include时,他的变量作用域根据其上下文环境决定.

1.如果是在一个函数中require/include一个文件,则此文件中的变量作用域是这个函数的范围.也就是说,这个文件只能访问此函数内在载入这个文件前所定义的变量,全局变量是不能访问的.距离说明

脚本test.php的内容:

<?php
    function foo(){
        $GLOBALS[‘a‘]="i am global";
        $b="i am variable inner function";
        include "included-file.php";
    }
foo();

 

脚本included-file.php的内容:

<?php
echo $a,$b;

运行test.php的结果是:

Notice: Undefined variable: a in E:\work\phpcom\aa.php on line 2
i am variable inner function

2.如果是在全局环境中引入一个文件,那这个文件是可以直接访问全局变量的.

 

以上是关于php包含(include/require)文件时的作用域的主要内容,如果未能解决你的问题,请参考以下文章

PHP 文件包含总结 include require 命名空间 autoload spl_autoload_register 读取文件路径

文件包含漏洞

php的include(),require(),include_once(),require_once()

求大神解释一下PHP中include()require()import()还有shine()分别啥作用吗

PHP:文件包含漏洞

PHP内的包含语句(include(),require(),include_once(),require_once())