开发者学堂课程【PHP 基础入门课程(下):局部变量】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/710/detail/12632
局部变量
内容介绍:
一、作用域
二、局部作用域(局部变量)
三、小结
一、作用域
目标:了解 PHP 作用域的概念以及 PHP 中的作用域的类型,掌握作用域的限制和破解关系。
作用域:即作用范围,指变量能够被访问的范围。可分为:
1、局部作用域包含局部变量
2、全局作用域包含全局变量
3、超全局作用域包含超全局变量
4、跨境访问
二、局部作用域(局部变量)
1、概念:
局部作用域:某个函数内部(函数体)的作用域
(1)局部变量:在函数内部定义的变量(形参)
(2)局部变量只能在当前函数内部被访问
(3)形参只能在局部作用域使用
2、示例
局部作用域在局部空间里定义局部变量,这个局部变量就属于局部作用域,比如有一个函数,在函数内部定义了一个变量,那么这个变量就属于局部变量,而局部变量只能在自定义的函数内部使用,其他地方都不能使用。
(1)局部作用域定义局部变量
<?php
#局部作用域
function display1(){
//定义一个函数
#函数内部定义的变量都是局部变量
$a *=_FUNCTION_;
// 此时把这个作为局部变量,在内部使用是没有问题的。
echo $a;
}
display1();
#函数在此开始执行,也是在此执行结束(释放函数内部所占用的内存)不报错
echo $a;
//在内部之外访问的话不能运行,没有定义。 报错
(2)形参属于局部作用域
function display2($a = 2){
echo $a;
}
display2();
//输出
echo $a;
//报错 未定义变量
三、小结
1、局部作用域就是函数内部。
2、局部作用域里定义的变量是局部变量。
3、局部变量只能在对应的局部作用域访问,其他地方不可访问。比如函数外部和其他函数内部。
4、形参只能在局部作用域中使用(属于局部变量)
5、扩展:形参引用传值,本质是外部变量与局部变量指向同一个内存地址,在外部访问的是外部变量。
因为比如在(‘$a * 2)
加了一个引号,相当于外部给传了一个变量,然后就去取得变量的内存地址,所以在里面的操作对外部有所影响,本质并不是说变成了全局变量,而只是修改与外部相通的意思。