实测在class的function中include的文件中非php的globa

网络编程 2025-03-13 09:05www.168986.cn编程入门

经过测试,关于在class中include文件后变量作用域的变化,有一些有趣的发现。这里简要概述一下测试内容和结果,希望能对大家有所帮助。

在测试代码1.php中,我们有一个类c,其中的fun()函数包含了一个include('2.php')语句。被include的文件为代码2.php。结果显示,在class中的函数内include文件后,被include文件的变量域并非全局,需要通过global关键字提升。

让我们详细看看代码的执行情况。在代码2.php中定义了一些变量和函数g2fun()。在g2fun()函数中,我们使用了global关键字来引用全局变量$g1、$g2和$gg2。结果显示,在函数g2fun()内部,这些全局变量能够被正确引用。但在代码2.php的其它部分,如果没有使用global关键字,这些变量的值则为NULL。这表明在代码2.php中,这些变量并非全局可用。

接着,回到测试代码1.php中的类c的fun()函数。在这个函数中,我们再次使用了include('2.php')语句来包含代码2.php。结果显示,在类c的fun()函数中,我们可以访问到代码2.php中定义的变量$g1、$g2和$gg2的值。这说明在类中使用include后,被include文件的变量域已经变成了函数中的局部变量,而非全局变量。我们可以通过global关键字提升这些变量的作用域,使其在类中的函数内也能被正确引用。

在测试代码1.php的末尾,我们看到在没有使用global关键字的情况下,变量$g2的值为NULL。这表明在代码1.php的外部作用域中,我们无法直接访问到代码2.php中定义的局部变量$g2。通过global关键字提升后,我们可以在任何地方访问这些变量。

上一篇:asp下的一个检测链接是否正常的函数 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by