开发者学堂课程【PHP 基础入门课程(下):Global 关键字】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/710/detail/12635
Global 关键字
内容介绍:
一、跨作用域访问
二、步骤
三、示例
四、小结
一、跨作用域访问
跨作用域访问:即在局部作用域访问全局变量,或者在全局作用域访问局部变量
在函数内部使用 qlobal 关键字声明变量,它有如下特殊含义:
(1)在函数内部声明一个局部变量。(声明的是局部变量本身)
(2)在函数外部声明一个全局变量。(如果当前申明的变量名在全局空间存在:系统直接引用。)
(3)两个变量指向同一个内存。
(4)globa 声明变量时,不能赋值 。(也就是说globa在声明变量时可以声明一个内部的局部变量和一个外部的全局变量)
二、步骤
1、定义函数在函数内部使用 qlobal 声明变量。
(1)函数外存在同名全局变量:内部创建一个同名局部变量。
(2)函数外不存在同名变量:内部创建一个局部变量,外部创建一个同名全局变量。
2、访问修改
(1)外部有:可以直接访问。
(2)外部没有:内部可以直接给值。
3、函数运行结束
(1)内部局部变量消失
(2)外部全局变量存在
三、示例
1、局部访问全局变量
<?php
# global 关键字跨域
#定义全局变量
$a =100;
function display() {
#声明变量:引入全局
global $a;#必须同名,此时不能赋值,若赋值会出现问题
echo $a++;
}
display();#输出100(说明内部访问到全局变量)
echo $a;#输出101(说明内部修改影响到外部)
2、局部声明全局变量,全局作用域访问
function display(){
#声明全局变量
global $b;
$b = ‘hello world’;
}
display1();#运行没有问题,说明 global 声明的变量,是一个全局变量可以直接访问。
echo $b;
运行结果:
或者如下:
function display(){
#声明全局变量
global $b;
$b = 10;
}
echo $b;#报错:提示未定义变量
display();
echo $b;#输出10(说明局部变量也是一个全局变量)
四、小结
1、global 是局部作用域声明全局变量的关键字。
(1)global 只能声明,不能赋值 。
(2)globa 声明逻辑
全局变量存在:内部创建一个同名局部变量,并执行外部全局变量·
全局变量不存在:内部创建一个局部变量,外部创建一个同名全局变量,并指向同一个内存地址(它们彼此的修改都会影响到彼此)
2、跨作用域访问比较少用,一般要跨作用域访问的都是访问预定义变量
3、作用域划分的目的
(1)方便开发者更好的管理数据·
(2)为了保证数据的安全(同名变量在不同作用域互不干扰)
