局部变量|学习笔记

简介: 快速学习局部变量

开发者学堂课程【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(); #函数在此开始执行,也是在此执行结束(释放函数内部所占用的内存)不报错

image.png

echo $a; //在内部之外访问的话不能运行,没有定义。  报错

image.png

(2)形参属于局部作用域

function display2($a = 2){

echo $a;

}

display2();   //输出

echo $a;//报错 未定义变量

image.png


三、小结

1、局部作用域就是函数内部。

2、局部作用域里定义的变量是局部变量。

3、局部变量只能在对应的局部作用域访问,其他地方不可访问。比如函数外部和其他函数内部。

4、形参只能在局部作用域中使用(属于局部变量)

5、扩展:形参引用传值,本质是外部变量与局部变量指向同一个内存地址,在外部访问的是外部变量。

因为比如在(‘$a * 2)加了一个引号,相当于外部给传了一个变量,然后就去取得变量的内存地址,所以在里面的操作对外部有所影响,本质并不是说变成了全局变量,而只是修改与外部相通的意思。

相关文章
|
负载均衡 安全 应用服务中间件
什么是正向代理和反向代理
正向代理是客户端与服务端之间的中介,用于访问受限资源,如V/P/N和动态IP代理,同时可隐藏客户端IP。反向代理则接收客户端请求并转发给后端服务器集群,隐藏真实服务器信息,常用于堡垒机和负载均衡,如nginx。正向代理焦点在客户端,反向代理关注服务端。
|
12月前
|
Linux iOS开发 MacOS
Flask 安装
Flask 安装还是比较简单的。
401 18
|
10月前
|
人工智能 JSON 小程序
【一步步开发AI运动小程序】八、利用body-calc进行姿态识别
随着AI技术的发展,各大厂商推出的如“乐动力”、“天天跳绳”等AI运动APP,使得云上运动会、线上健身等概念风靡一时。本文将引导读者从零开始开发一个AI运动小程序,使用“云智AI运动识别小程序插件”,介绍人体姿态检测规则、规则编写语法、执行检测规则运算及姿态检测实战等内容,助力开发者轻松实现AI运动小程序的开发。
【一步步开发AI运动小程序】八、利用body-calc进行姿态识别
|
缓存 NoSQL Java
用好缓存,让你的接口速度飞起来
本文是关于接口性能优化,特别是通过缓存来提升接口响应速度的探讨。作者是一名有六年经验的Java后端开发者,分享了自己避免线上系统因代码崩溃造成资损的经验,主要归功于业务的简单性、遵循代码规约和积累的实用技巧。文章重点讲解了缓存的两个方面:缓存预热(包括定时任务和启动预热)和缓存层次化(多级缓存和热点数据缓存),并提供了如何用代码实现这些思路的示例。作者还介绍了自定义缓存处理器的设计和实现,包括接口和抽象类的定义,以及使用函数式编程实现的缓存查询模板。最后提醒,缓存虽有益但需谨慎使用,应根据业务需求和数据特征定制策略。
346 1
|
机器学习/深度学习 人工智能 TensorFlow
2023年人工智能开源项目前20名
人工智能(AI)正在迅速成为现代世界的变革力量,开源项目在这一转型中发挥了重要作用。开源人工智能项目使尖端技术的访问民主化,鼓励该领域专家之间的合作,并能够开发复杂而强大的人工智能解决方案来解决现实世界的问题。
2335 0
|
JavaScript
vue三级联动下拉菜单
vue三级联动下拉菜单
1150 0
|
网络架构 芯片 内存技术
TP_Link WR886N 硬改闪存16M内存64M,刷入openwrt
TP_Link WR886N 硬改闪存16M内存64M,刷入openwrt
568 1
|
存储 SQL 关系型数据库
谈谈SQL的优化经验
谈谈SQL的优化经验
|
存储 前端开发 JavaScript
sass笔记 - 实战中颜色的玩法总结
这篇文章是针对自己封装UI组件库的读者的,旨在为项目提供通用的颜色方案本文需要读者拥有CSS、SASS/SCSS相关基础知识。
323 1
sass笔记 - 实战中颜色的玩法总结
|
机器学习/深度学习 人工智能 计算机视觉
LabVIEW中使用opencv快速实现视频的读写
LabVIEW中使用opencv快速实现视频的读写
798 0
LabVIEW中使用opencv快速实现视频的读写