php全局变量在函数内不能使用怎么办
本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑
一般情况下全局变量在函数内是不能使用,但有时我们就必须要在函数内使用全局变量,这要怎么办?
PHP提供了两种解决方法: global关键字和$GLOBALS超全局变量。
方法1、利用global关键字
<?php
$a = 1;
$b = 2;
$c = 3;
function demo(){
global $a,$b,$c;
echo '$a = '.$a;
echo '<br>$b = '.$b;
echo '<br>$c = '.$c;
}
demo();
?>
看看输出结果为:
$a = 1
$b = 2
$c = 3
分析:
global关键字的作用是:导入全局变量,利用global 变量1, 变量2, ...
的形式把全局变量1, 变量2...
导入到一个函数的局部范围内,就可以在函数内部使用在函数外部定义的全局变量了。
使用 global 关键字需要注意一下几点:
global 关键字,只能在函数内部使用,不能在函数外部使用;
global 关键字只能用来引用函数外部的全局变量,在引用时不能直接赋值,赋值和声明语句需要分开写;
在函数内部销毁一个使用 global 关键字修饰的变量时,函数外部的变量不受影响。
方法2:利用$GLOBALS超全局变量
<?php
$a = 1;
$b = 2;
$c = 3;
function demo(){
echo '$a = '.$GLOBALS['a'];
echo '<br>$b = '.$GLOBALS['b'];
echo '<br>$c = '.$GLOBALS['c'];
}
demo();
?>
输出结果为:
$a = 1
$b = 2
$c = 3
分析:
$GLOBALS
是一种预定义变量(又叫超全局变量),是包含所有变量的全局组合数组,变量的名称就是数组的键,可以使用$GLOBALS['变量名']
的形式来访问指定全局变量。只要是出现过的全局变量,就可以通过$GLOBALS
这个数组取得。
global和$GLOBALS的区别
global只能在函数内部使用,不能在函数外部使用;而$GLOBALS 可以在程序的任意位置(函数内外)都能使用。
在函数内部销毁一个使用 global 关键字修饰的变量时,函数外部的变量不受影响;而$GLOBALS是有影响的。
原因:
使用 global 关键字修饰的$var变量时,是对函数外部同名变量的引用,内外是两个互不影响的变量;
而 $GLOBALS['var'] 指的就是函数外部变量本身,是一个变量。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341