1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 什么是全局变量?php变量的范围之全局变量实例详解

什么是全局变量?php变量的范围之全局变量实例详解

时间:2022-10-15 15:38:50

相关推荐

什么是全局变量?php变量的范围之全局变量实例详解

后端开发|php教程

php,变量的范围,全局变量

后端开发-php教程

什么是全局变量?

随机聊天 源码,vscode 插件文件,怎么复制粘贴到ubuntu,tomcat处理慢,sqlite 毫秒转日期,曰历插件,web安卓前端框架,python爬虫训练下载,php 类 函数调用,google评估seo,网站模版 智能表单编辑器,网页在线工具php源码,qq聊天记录生成模板,asp程序如何修改管理员lzw

全局变量也称为外部变量,是在函数的外部定义的,它的作用域为从变量定义处开始,到这个程序文件的结尾。和其他编程语言不同,全局变量不是自动设置为可用的。上一章节我们介绍了php变量的范围的局部变量,在PHP中,由于函数可以视为单独的程序代码片段,所以局部变量会覆盖全局变量的能见度,因此在函数中无法直接调用全局变量。

asp18源码,vscode在文件夹搜索,ubuntu设置宽带,lvs和tomcat区别,防爬虫设置,php comet 框架,明城seo优化多少钱,wp博客 婚庆网站模板lzw

其代码如下所示的格式:

access .asp系统源码,ubuntu 文件卡死,tomcat要连网吗,原生缸爬虫,PHP下载系统窗品牌,seo优化工程师培训广州lzw

<?php $one = 10; $two = 20; // 测试在函数内部不能直接使用全局变量 $one 和 $two function sum(){ // 在函数内部新声明并且没有赋初始值的两个变量 echo "运算结果:".($one+$two)."

"; } sum(); //调用函数?>

该程序执行后输出的结果如下显示:

运算结果:0 // 两个变量没有初始值则为 NULL ,执行两个空值相加后结果为 0

在上面的实例中,函数 sum() 外面声明了两个全局变量 $one 和 $twe,但在PHP中,不能直接在函数中使用全局变量。所以在 sum() 函数中使用的变量为 $one 和 $twe,相当于重新声明的两个变量,并且没有被赋予初始值,是两个未定义空值的运算,所以得到的结果为0。在函数中若要使用全局变量,必须要利用关键字定义目标变量,而这个全局变量的关键字为 “ global ”, 使用关键字“global”你就可以把全局数据导入到一个函数的局部范围内,以告诉函数主体此变量为全局变量。

下面在函数内部使用关键字“global” 调用函数外部声明的全局变量来举个例子:

<?php $one = 10; $two = 20; // 测试在函数内部使用关键字加载 global 全局变量 $one 和 $two function sum(){ //在函数内部使用关键字加载 global 全局变量,加载多个使用逗号分隔 global $one, $two; // 使用函数外部声明的全局变量 echo "运算结果:".($one+$two)."

"; } sum(); //调用函数?>

该程序执行后输出的结果如下显示:

运算结果为 30 // 使用 global 关键字就可以加载全局变量在函数内使用

“global”关键字是用来导入全局变量的。看起来它工作的很好,而且很简单,但是还是要对使用“global”关键字来定义全局数据而担心。因为有三个理由:

1、代码重用几乎是不可能的。

如果一个函数依赖于全局变量,那么想在不同的环境中使用这个函数几乎是不可能的。另外一个问题就是你不能提取出这个函数,然后在其他的代码中使用。

2、调试并解决问题是非常困难的。

跟踪一个全局变量比跟踪一个非全局变量困难的多。一个全局变量可能会在一些不明显的包含文件中被重新定义,即使你有一个非常好的程序编辑器(或者IDE)来帮助你,你也得花了几个小时才能发现这个问题所在。

3、理解这些代码将是非常难的事情。

你很难弄清楚一个全局变量是从哪里来得,它是用来做什么的。在开发的过程中,你可能会知道知道每一个全局变量,但大概一年之后,你可能会忘记其中至少一般的全局变量,这个时候你会为自己使用那么多全局变量而懊悔不已。

$GLOBALS

在函数中使用全局变量,除了使用 global 关键字,还可以使用特殊的 php 自定义 $GLOBALS 数组。前面的例子可以写成使用 $GLOBALS 替代 global。

代码如下显示:

说明: 在 $GLOBALS 数组中,每一个变量是一个元素,键名对应变量名,值对应变量的内容。$GLOBALS 之所以在全局范围中存在,是因为它是一个超全局变量。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。