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'] 指的就是函数外部变量本身,是一个变量。

--结束END--

本文标题: php全局变量在函数内不能使用怎么办

本文链接: https://www.lsjlt.com/news/244.html (转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢

  • php全局变量在函数内不能使用怎么办

    解决方法:1、利用global关键字在函数内导入全局变量,语法“global 全局变量1, 全局变量2, ...”;2、利用超全局变量“$GLOBALS”访问指定全局变量,语法“$GLOBALS['全局变量名']”。
    阅读数:192 php 全局变量 函数
  • js全局变量和php全局变量的区别是什么

    js全局变量和php全局变量的区别:PHP在函数中调用全局变量需要利用global关键字,该关键字是用来导入全局变量的,而在js中调用全局变量则不需要利用关键字。
    阅读数:397 PHP
  • PHP全局变量有哪些

    这篇文章主要介绍了PHP全局变量有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。PHP 全局变量 - 超全局变量PHP 中的许多预定义变量都是“超全局的”,这意味着它们在
    阅读数:861 php
  • php全局变量的含义是什么

    在PHP中,全局变量是在函数外部定义的变量,可以在任何地方进行引用和更改,在php函数中使用全局变量时,可以利用“global”关键字来声明所使用的内容。
    阅读数:388 php
  • php curl 不能访问怎么办

    php curl不能访问的解决办法:1、在PHP环境安装目录下找到ssleay32.dll和libeay32.dll文件;2、将其拷到system32目录下;3、重启IIS即可。
    阅读数:755 php curl
  • php phpinfo 不能出现php信息怎么办

    php phpinfo不能出现php信息的解决办法:1、找到并打开php.ini文件;2、将其中的short_open_tags打开;3、重新加载php.ini服务即可。
    阅读数:250 php phpinfo
  • 树莓派不能安装php怎么办?

    树莓派不能安装php的解决办法:1、将php7.0更换成7.3;2、添加apt源,更新软件包列表;3、安装PHP7.3即可。
    阅读数:780 树莓派
  • php不能写入中文怎么办

    php不能写入中文的解决办法:1、设置html页面和php页面的编码为“charset=utf-8”;2、通过“mysql_query("set names utf8");”改变客户端的编码。
    阅读数:960 php
  • php视频不能播放怎么办

    php视频不能播放的解决办法:1、打开相应的php文件;2、更改为二进制模式上传;3、修改为http传输;4、用rsync同步即可。
    阅读数:609 php
  • apache不能正常解析php怎么办

    apache不能正常解析php的解决办法:1、进入命令窗口;2、执行命令“sudo apt-get install libapache2-mod-php”即可。
    阅读数:656 apache php
  • php中var不能用怎么办

    php中var不能用的解决办法:1、打开相应的PHP文件;2、查看Address类对应的“address.inc”代码;3、查找“public”并将其去掉,或者将“public” 改为“var”即可。
    阅读数:471 php
  • php表单提交不能接收怎么办

    php表单提交不能接收的解决办法:1、打开php.ini配置文件;2、修改php.ini里配置的参数“post_max_sizeupload_max_filesize”和“post_max_size”的大小即可。
    阅读数:385 php
  • php警告变量没有定义怎么办

    php警告变量没有定义是因为PHP是弱类型语言,所以会出现警告,其解决办法就是:1、查看相应的PHP代码文件;2、找到变量代码,然后初始化变量并进行赋值;3、加@来对错误进行抑制,代码如“$sid = @$_POST['sid'];”。
    阅读数:613 php
  • php不能处理太大图片怎么办

    php不能处理太大图片的解决办法:1、对PHP的内存分配大小进行调整,代码如“ini_set("memory_limit", "512M");”;2、修改安全限制。
    阅读数:102 php
  • php验证码后台不能生成怎么办

    php验证码后台不能生成的解决办法:1、添加“header('Content-type: image/png')”语句;2、通过“ob_clean();”清除输出缓存即可。
    阅读数:592 php 验证码
  • php curl_init 不能用怎么办

    php curl_init不能用的解决办法:1、打开终端命令窗口;2、通过执行“sudo apt-get install php-curl”命令解决无法使用curl_init()函数问题即可。
    阅读数:843 php
  • php中iconv函数报错怎么办

    方法:1、在函数的第二个参数后添加“//IGNORE”,语法为“iconv("UTF-8","GB2312//IGNORE",..)”;2、将gb2312置换成“utf-8”,语法为“iconv("GB2312","UTF-8",..)”。
    阅读数:445 php
  • php 加入环境变量失败怎么办

    php加入环境变量失败的解决办法:1、找到环境变量,选择“Path->编辑”;2、新增环境变量;3、修改php.ini配置;4、把cmd全部关闭并重启打开即可。
    阅读数:312 php
  • mac升级php后不能用了怎么办

    mac升级php后不能用了的解决办法:1、设置php.ini的时区;2、找到“;date.timezone =”改为“date.timezone = Asia/Shanghai”;3、启动myql服务;4、配置rewrite即可。
    阅读数:901 mac php
  • php 只能上传1k内的文件怎么办

    php只能上传1k内的文件的解决办法:1、找到并打开php.ini配置文件;2、修改“client_max_body_size”和“upload_max_filesize”以及“post_max_size”的值即可。
    阅读数:514 php