感觉这个跟别的语言挺不一样的
所以单独记下来,网上搜的文章
php作用域
作用域:变量能被访问到的区域 。php中的作用域与js中有所不同
js中函数内可以直接访问到全局变量,而在php中则无法直接访问
php变量的作用域可以分为三种
一、全局变量;
简单理解,就是函数外部定义的变量,只能在函数外部进行访问
二、局部变量;
其实就是函数内部定义的变量,只能在函数内部使用
三、超全局变量;
系统定义的变量,包括的全部变量,任何地方都能访问
如何实现函数内部与函数外部的互相访问?
首先看一段代码,这样是无法运行的
1
2
3
4
5
6
7
8
$a=“123”;
function fun(){
echo $a;
}
fun();
解决办法有三种:
1、在函数中传入参数$a
1
2
3
4
5
6
7
8
$a=“123”;
function fun($a){
echo $a;
}
fun(
a
)
;
2
、
使
用
超
全
局
变
量
a); 2、使用超全局变量
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;