global php 不起作用怎么办

php global不起作用的解决办法:1、减少多层次的include调用,也尽量不要在函数内使用include;2、在相应的页面中将“$site_name”进行全局变量形式的声明。

global php 不起作用怎么办

本文操作环境:Windows7系统、PHP8、Dell G3电脑。

php global变量无效?

对于PHP初学者而言,在使用global关键字时,可能会发现,在函数内global一个函数外的变量,在某些情况下却无法正确输出该变量(即global变量无效)。下面我们来看一个简单而常见的例子。

在这里,我们有a.php和b.php两个页面。

b.php页面代码如下:

 

登录后复制

a.php页面代码如下:

 

登录后复制

上面的例子非常简单,我们希望当我们访问a.php页面,能够正确显示出欢迎语句。不过,遗憾的是,当我们使用浏览器访问a.php页面却发现输出结果如下:

Hello! Welcome to !

登录后复制

也就是说,我们在函数include_view_page()中调用sayHi()函数时,b.php页面sayHi()函数中global的$site_name却没有被正确识别、生效。这究竟是怎么一回事呢?

实际上,当我们在函数include_view_page()中include b.php页面时,b.php页面的变量$site_name就相当于存放在include_view_page()函数内的作用域中。众所周知,在函数内global一个变量实际上是在函数内建立一个对页面全局变量的引用。而在我们的例子中,这个$site_name变量对于a.php而言,它只是include_view_page()函数内的局部变量,因此无法global该变量,我们进行相关调用时自然无法获取到正确的变量和变量值。

在php中,我们尤其需要注意类似上述在函数内include某个页面,导致该页面中变量的作用域发生改变的问题。为了避免这种情况,我们应该尽量减少多层次的include调用,也尽量不要在函数内使用include。此外,我们还可以在b.php的页面中将$site_name进行全局变量形式的声明。

//b.php

登录后复制

【推荐学习:《PHP视频教程》】

以上就是global php 不起作用怎么办的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2519054.html

(0)
上一篇 2025年3月5日 16:20:02
下一篇 2025年3月5日 13:11:29

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • php怎么去除js

    php去除js的方法:首先创建一个PHP示例文件;然后通过PHP正则表达式“preg_replace($preg,””,$str,3);”去除js代码即可。 本文操作环境:Windows7系统、PHP7.1、Dell…

    2025年3月5日
    200
  • php怎么判断几维数组

    php判断几维数组的方法:首先创建一个PHP示例文件;然后定义一个TestArray函数;最后通过foreach以及“is_array”函数遍历判断是几维数组即可。 本文操作环境:Windows7系统、PHP7.1、Dell G3电脑。 P…

    2025年3月5日
    200
  • 怎么解决php com组件报错问题

    php com组件报错的解决办法:1、在php.ini中修改配置“com.allow_dcom”和“php_com_dotnet.dll”;2、使用vs2013编写COM组件。 本文操作环境:Windows7系统、PHP7.1、Dell G…

    2025年3月5日 编程技术
    200
  • php汉语代码出现乱码怎么办

    解决方法:使用header函数设置页面显示的文字编码,例“header(“Content-Type:text/html;charset=utf-8”);”;如果是链接数据库,需用mysqli_set_charset(…

    2025年3月5日
    200
  • php怎么数组合并但键名不变

    在php中,可以利用加号“+”来合并数组,具体语法格式“数组1+数组2”,这样数组合并且数组的键名不会重置。使用加号“+”合并两个数组,无论是普通数组还是键值对型数组,只要下标相同或者键相同,都是前者覆盖后者。 本教程操作环境:window…

    2025年3月5日
    200
  • php怎么将xml转换成数组

    php将xml转换成数组的方法:首先将xml数据转成object(对象)格式的数据;然后使用json_encode()函数将object格式转成json格式数据;最后使用json_decode()函数将json格式转成数组形式即可。 本教程…

    2025年3月5日
    200
  • php怎样关闭错误报告

    php关闭错误报告的方法:首先打开php.ini配置文件;然后在文件中查找display_errors;最后将【display_errors = Off】修改成【display_errors = On】即可。 本文操作环境:windows1…

    2025年3月5日
    200
  • php怎么将字符串转为json数据

    php将字符串转为json数据的方法:首先使用explode()函数将字符串转换为数组格式;然后使用json_encode()函数将数组转换为json数据即可,语法格式“json_encode(数组,true)”。 本教程操作环境:wind…

    2025年3月5日
    200
  • php如何清除html标签代码

    php清除html标签的方法:1、使用php自带的函数可以去除,函数为【strip_tags(string,allow)】;2、使用PHP处理从数据库中读取的文章HTML代码,并用正则对代码进行匹配与修改,保存代码以后,用静态生成功能即可。…

    2025年3月5日
    200
  • PHP的抽象类和接口有什么区别

    区别:1、抽象类可有属性、普通方法,但接口不能有;2、抽象类内未必有抽象方法,但接口内一定会有“抽象”方法;3、语法上有不同;4、抽象类用abstract关键字在类前声明,且有class声明为类,接口是用interface来声明,但不能用c…

    2025年3月5日
    200

发表回复

登录后才能评论