php变量作用域
摘自:https://www.cnblogs.com/dumenglong/p/11183884.html
作用域:变量能被访问到的区域 。php中的作用域与js中有所不同
js中函数内可以直接访问到全局变量,而在php中则无法直接访问
php变量的作用域可以分为三种
一、全局变量;
简单理解,就是函数外部定义的变量,只能在函数外部进行访问
二、局部变量;
其实就是函数内部定义的变量,只能在函数内部使用
三、超全局变量;
系统定义的变量,包括的全部变量,任何地方都能访问
如何实现函数内部与函数外部的互相访问?
首先看一段代码,这样是无法运行的
1 $a="123"; 2 3 function fun(){ 4 5 echo $a; 6 7 } 8 fun();
解决办法有三种:
1、在函数中传入参数$a
1
2
3
4
5
6
7
8
|
$a= "123" ; function fun($a){ echo $a; } fun($a); |
2、使用超全局变量$GLOBALS在函数内部进行访问
1
2
3
4
5
6
7
8
|
$a= "123" ; function fun(){ echo $GLOBALS[ 'a' ]; } fun(); |
3、实现全局和局部的互相访问。使用Global关键字
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
全局空间已存在变量,局部访问全局 $a= "123" ; function fun(){ global $a; echo $a; } fun(); 全局空间不存在这个变量,全部访问局部 function fun(){ global $a; $a= "123" ; } fun(); echo $a; |