PHP中全局变量global详解
May 25, 2016 pm 04:47 PM本文章来详细的介绍关于PHP中全局变量global的方法,有需要了解global函数使用方法的朋友可参考本文章.
变量的范围即它定义的上下文背景(也就是它的生效范围).大部分的 PHP 变量只有一个单独的范围.这个单独的范围跨度同样包含了 include 和 require 引入的文件.
实例代码如下:
1 2 3 4 |
|
这里变量 $a 将会在包含文件 b.inc 中生效.但是,在用户自定义函数中,一个局部函数范围将被引入.任何用于函数内部的变量按缺省情况将被限制在局部函数范围内.例如:
实例代码如下:
1 2 3 4 5 6 7 |
|
这个脚本不会有任何输出,因为 echo 语句引用了一个局部版本的变量 $a,而且在这个范围内,它并没有被赋值.你可能注意到 PHP 的全局变量和 C 语言有一点点不同,在 C 语言中,全局变量在函数中自动生效,除非被局部变量覆盖.这可能引起一些问题,有些人可能不小心就改变了一个全局变量.PHP 中全局变量在函数中使用时必须申明为global.
今天就遇到了php 全局变量不起作用的问题.先上一段简单的代码:
实例代码如下:
1 2 3 4 5 6 7 8 |
|
上面的代码中输出是0,那是因为函数体Test内$a变量被缺省设置为局部变量,$a的作用域就是在Test内.修改代码如下
实例代码如下:
1 2 3 4 5 6 7 8 9 |
|
申明函数体Test内使用的$a变量为global全局变量后,使得$a的作用全局,所以输出为1.
上面的实例只是基本的global全局变量知识,下面我们看看复杂点的:
//A.php 文件
实例代码如下:
1 2 3 4 5 6 7 8 9 |
|
//B.php 文件
1 2 3 4 5 6 |
|
为什么输出的却是0?!!
在用户自定义函数中,一个局部函数范围将被引入.任何用于函数内部的变量按缺省情况将被限制在局部函数范围内(包括include 和 require 导入的文件内的变量)!
解释:A.php文件的内Test_Global是定义好的第三方函数,该函数用include导入了B.php文件内的$a的global全局变量,所以$a被限制在Test_Global局部函数范围内,所以B.php文件内的$a的作用范围都在Test_Global内,而不是作用了整个A.php内….
解决方案:
1. 冲出局部函数
实例代码如下:
//A.php 文件
1 2 3 4 5 6 7 8 9 |
|
//B.php 文件
1 2 3 4 5 6 |
|
2.优秀的访问器
实例代码如下:
//A.php 文件
1 2 3 4 5 6 |
|
//B.php 文件
1 2 3 4 5 |
|
文章网址:
随意转载^^但请附上教程地址。

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











vue3+vite: src에서 이미지를 동적으로 가져오기 위해 require를 사용할 때 오류를 해결하는 방법

PHP include와 include_once의 차이점은 무엇입니까

Xiaomi 메시 시스템 AC1200: 최대 370평방미터를 지원하는 새로운 Wi-Fi 메시 시스템이 전 세계적으로 출시됩니다.

PHP 헤더의 치명적인 오류를 해결하는 단계: require(): Failed opening require 'data/tdk.php' (include_path='.;C:\php\pear')

Hashkey Global은 Binance Platform Coin BNB의 출시를 발표했습니다! Zhao Changpengque는 실수를했습니다

Xiaomi, Bluetooth 5.3 및 다양한 포트를 갖춘 저렴한 사운드바 출시

PHP 헤더의 치명적인 오류를 해결하는 단계: require(): 필수 'data/tdk.php'를 열지 못했습니다.
