php变量的使用范围也叫,什么是全局变量?php变量的范围之全局变量实例详解

本文详细介绍了PHP中的全局变量,它们在函数外部定义,作用域从定义处到文件结束。然而,在函数内部,全局变量不可直接访问,需要使用`global`关键字导入。文章通过实例展示了如何在函数中正确使用全局变量,并讨论了过度依赖全局变量可能导致的代码复用、调试和理解难度等问题。同时,提到了使用`$GLOBALS`数组作为另一种访问全局变量的方法。最后,文章预告了下一部分将讨论PHP的静态变量。
摘要由CSDN通过智能技术生成

什么是全局变量?

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

其代码如下所示的格式:<?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。

代码如下显示:<?php

$one = 10;

$two = 20;

function sum(){

//在函数内部使用 $GLOBALS 访问全局变量,

$GLOBALS["two"] = $GLOBALS["one"] + $GLOBALS["two"];

}

sum(); //调用函数

echo $two;

?>

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

以上就是全局变量的定义以及php变量的范围里面的全局变量实例介绍,下一章将介绍什么是php的static静态变量。

【相关教程推荐】

1. 《php.cn独孤九贱(4)-php视频教程》

2. php编程从入门到精通全套视频教程

3. php实战视频教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值