怎么解决php全局变量在函数内不能使用的问题

这期内容当中小编将会给大家带来有关怎么解决php全局变量在函数内不能使用的问题,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

成都创新互联是专业的通城网站建设公司,通城接单;提供成都网站制作、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行通城网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

解决方法:1、利用global关键字在函数内导入全局变量,语法“global 全局变量1, 全局变量2, ...”;2、利用超全局变量“$GLOBALS”访问指定全局变量,语法“$GLOBALS['全局变量名']”。

本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

一般情况下全局变量在函数内是不能使用,但有时我们就必须要在函数内使用全局变量,这要怎么办?

PHP提供了两种解决方法: global关键字和$GLOBALS超全局变量。

方法1、利用global关键字

$b = '.$b;
    echo '
$c = '.$c; } demo(); ?>

看看输出结果为:

$a = 1
$b = 2
$c = 3

分析:

global关键字的作用是:导入全局变量,利用global 变量1, 变量2, ...的形式把全局变量1, 变量2...导入到一个函数的局部范围内,就可以在函数内部使用在函数外部定义的全局变量了。

使用 global 关键字需要注意一下几点:

  • global 关键字,只能在函数内部使用,不能在函数外部使用;

  • global 关键字只能用来引用函数外部的全局变量,在引用时不能直接赋值,赋值和声明语句需要分开写;

  • 在函数内部销毁一个使用 global 关键字修饰的变量时,函数外部的变量不受影响。

方法2:利用$GLOBALS超全局变量

$b = '.$GLOBALS['b'];
    echo '
$c = '.$GLOBALS['c']; } demo(); ?>

输出结果为:

$a = 1
$b = 2
$c = 3

分析:

$GLOBALS是一种预定义变量(又叫超全局变量),是包含所有变量的全局组合数组,变量的名称就是数组的键,可以使用$GLOBALS['变量名']的形式来访问指定全局变量。只要是出现过的全局变量,就可以通过$GLOBALS这个数组取得。

global和$GLOBALS的区别

  • global只能在函数内部使用,不能在函数外部使用;而$GLOBALS 可以在程序的任意位置(函数内外)都能使用。

  • 在函数内部销毁一个使用 global 关键字修饰的变量时,函数外部的变量不受影响;而$GLOBALS是有影响的。

    原因:

    使用 global 关键字修饰的$var变量时,是对函数外部同名变量的引用,内外是两个互不影响的变量;

    而 $GLOBALS['var'] 指的就是函数外部变量本身,是一个变量。

上述就是小编为大家分享的怎么解决php全局变量在函数内不能使用的问题了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。


文章名称:怎么解决php全局变量在函数内不能使用的问题
文章出自:http://myzitong.com/article/gigsgc.html