实测在class的function中include的文件中非php的globa
经过测试,关于在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关键字提升后,我们可以在任何地方访问这些变量。
编程语言
- 实测在class的function中include的文件中非php的globa
- asp下的一个检测链接是否正常的函数
- php定义一个参数带有默认值的函数实例分析
- PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签
- 如何删除文本框里的文字内容中段落之间多余的
- angular4 获取wifi列表中文显示乱码问题的解决
- 如何使用数组来显示下拉菜单?
- php jsonp单引号转义
- 在sql中不指定Order by排序是按照主键吗
- ASP.NET Core环境设置教程(2)
- 利用node 判断打开的是文件 还是 文件夹的实例
- Cygwin中安装PHP方法步骤
- jQuery循环遍历子节点并获取值的方法
- JSP 中Session的详解及原理分析
- ThinkPHP5.1+Ajax实现的无刷新分页功能示例
- JSP教程(四)-JSP Actions的使用