当前位置: 首页 > news >正文

PHP全局使用局部变量+参数默认值+静态变量

自定义函数、返回值、返回值指的当函数调用结束以后,该函数给外部调用处返回一些列的数据数据类型任意:八个数据类型。如果函数没有任何返回值,可以理解为函数返回的是NULL。

PHP中函数可以没有返回值。
参数传值
传值方式:值传递(默认的)和引用传递
值传递:将实参复制一份,传递给形参(形参与外部实参变量没有关系),值传递可以通过在调用函数的时候直接使用数据常量。
引用传递:形参是获得实参所指向的数据的内存地址,形参与实参共同指向同一个内存地址。

引用传递
引用传递语法:在定义函数的时候,给形参使用地址符号&,调用引用传递的函数的时候,必须使用变量(实参必须是变量:不能是数据常量)传递。


引用传递不能使用数据常量


内存分析

特别注意:引用传值只能使用变量传数据。

参数作用
将函数外部的数据传入到函数内部供其使用


作用域
作用域概念
1.什么是作用域?
作用域指的就是变量所能使用的范围。

作用域分为两类:全局作用域和局部作用域。

2.全局作用域和局部作用域定义?
全局作用域
只要在函数外部定义的变量都是全局作用域
局部作用域
在函数内部定义的变量称之为局部作用域

3.全局作用域和局部作用域功能?
局部作用域的变量只能在函数的内部使用,函数外部不能使用。

全局作用域:
JS中:全局作用域的变量可以在函数的内外都使用
PHP中:全局作用域只能在函数外部使用

作用域证明


跨域使用变量
想要在函数的内部使用全局变量,在函数的外部使用局部变量。

局部使用全局作用域
方案一:
让函数在定义的时候采用引用传值。

方案二:
使用系统预定义超全局变量$GLOBALS,该变量保存了所有的全局变量。


全局使用局部作用域
方案一
让函数在定义的时候采用引用传值。

方案二
返回值:将内部数据(局部变量)作为返回值。

方案三
使用global关键字:将局部变量全局化(在创建局部变量的同时,创建全局变量:当前全局变量不存在,如果存在就会产生引用)
引用全局变量


创建全局变量


内存分析1:引用全局变量


内存分析2:创建全局变量


参数默认值
在定义函数的时候,给形参指定默认值,在进行函数调用的时候,可以不给有默认值的参数传递实参。

语法:形参 = 默认值
注意:如果一个参数列表中存在有默认值的参数,那么该参数必须在最右边(后面)


静态变量
1.什么是静态变量?
在函数内部使用static关键字修饰的变量,函数在多次调用的时候能够共同使用该变量(跨函数共享变量)

语法:static $变量


内存分析


匿名函数
没有函数名的函数叫匿名函数。

语法
变量 = function(参数列表){
//函数体
//返回值
}; //整体是赋值语句,所以需要语句结束符


匿名函数的使用
因为变量保存了函数的地址,所以必须通过变量来找到函数。系统要识别函数,只认括号,需要给变量增加一个括号来告诉系统当做函数处理。


匿名函数的使用
匿名函数通常用于做别的函数的参数:回调函数

伪类型
指的是定义好的函数,需要指定的数据类型作为参数或者返回值,是一种对用户的帮助。
mixed:数据类型有很多种,不具体限制
number:数字类型:整型和浮点型
callback:回调函数,指的需要一个可以被执行的函数的名字字符串。

void:null,不需要参数或者没有返回值

可变函数
可以变化的函数,函数名字是一个变量的值,可以通过变量直接访问函数。


数据类型判断
作用
判断用户提交的数据,判断数据的有效性,是否符合指定的数据约束(规范)。

判断方式
所有的数据类型的判断,都是通过函数来实现。函数都是以is_开始,后面跟对应的数据类型。
所有的函数的返回值都是布尔类型:如果是对应的类型返回true,否则返回false
is_bool:判断是否是布尔类型
is_float:判断浮点型
is_integer:判断整型
is_object:判断对象
is_array:判断数组
is_string:判断字符串
is_resource:判断资源
is_scalar:scalar是标量的,判断是基本数据类型:整型,浮点型,布尔型和字符串型
is_null:是否为空
is_numeric:判断数字或者纯数字组成的字符串

标量判断


数值判断


gettype:获得数据类型
settype:改变数据类型


数据类型转换
将数据的类型转换成指定的需要的数据类型。

php是一种弱类型语言。因此在php中有两种方式能够修改数据类型:自动转换和强制转换。

自动转换
系统根据自己的需求,将不合理的数据类型转换成需要的数据类型。不需要用户(代码)做任何额外的事情。

if条件一定是布尔类型,但是程序所给定的表达式的结果不一定是布尔类型,系统就会自动转换。
碰到一些指定的运算符的时候,也会出现自动转换。

字符串转数值规则
1.从左边开始碰到第一个不为数字或者小数点的字符截止
2.如果第一个字符不是数字或者小数点,那么该字符串结果是0
3.只能读取最多一个小数点

强制转换
用户通过代码强制的去将某个数据的数据类型转换成目标数据类型。
settype:就能够强制的转换数据类型。

语法二:
(数据类型)变量
int,integer:整型
bool,Boolean:布尔
float:浮点
string:字符串
array:数组
object:对象
php变量的复制:写时复制
$a = 100;
$b = $a; //值传递
//全局区中只有一个数据:100
$b = 50; //修改变量:写
//系统会自动的将原来只有一份100,变成两份100,并且修改其中一份b为50

文件包含

1.什么是文件包含?
字面意思是一个文件中包含另外一个文件,希望对应文件的内容可以在当前文件中被使用。

意义
布局
将界面结构中部分被重用的结构部分抽离出来形成单独的文件,然后在每一次需要使用该部分结构的时候,将对应的代码给包含进去。


优点:节省工作量,方便修改(提升维护效率)
代码重用
将代码中需要共用的部分代码(函数)抽离出来,形成对应的函数文件(php),然后在需要使用的地方加载当前文件,从而可以实现代码的重用。


文件包含
php通过某种语法,将一个对应php(不一定是php文件)文件中内容(php代码)加载到一个需要使用该代码的php脚本中,从而形成脚本的代码的一部分,帮助脚本正常工作。

语法:有两套文件包含方式
include:include ‘文件名字’ / include(‘文件名字’)
require:require ‘文件名字’ / require (‘文件名字’)


文件包含逻辑
文件可以被包含:文件包含语句属于执行性语句,符合代码的逐行执行条件,顺序执行。被包含文件是独立编译,但是可以实现数据共享。


文件重复包含
include_once/requrire_once:对一个文件进行多次包含的时候,只会包含一次。

require和include区别
都是包含文件,都是独立编译。
区别在于require一定会去包含对应的文件,如果文件不存在那么会导致致命错误,从而导致代码不再继续执行。
include会尝试去包含文件,如果不存在,会给一个错误提示,但是不影响后续代码的继续执行。


注意:文件包含可以是为了使用被包含文件里面的内容而包含,也可以是为了让被包含文件使用当前文件里面的内容而包含。

被包含文件可以不是php文件


文件路径管理

文件路径分为两种:绝对路径和相对路径
绝对路径:文件相对磁盘根目录开始的路径(URL)
相对路径:与当前文件相对应的路径(以当前文件为参照点)

文件的包含可以使用任意一种文件路径:建议使用绝对路径。

绝对路径包含


相对路径包含


相对路径:
什么都不用表示当前文件相对路径
./:表示当前目录
../:上级目录
/:网站根目录

PHP在包含文件的时候,如果存在嵌套好办,那么文件的相对路径会发生改变,但是绝对路径不会改变。


绝对路径没有相对路径速度快,如果在项目中能够确定不存在文件包含嵌套或者有嵌套但是不会影响相对路径的时候,可以使用相对路径进行文件包含。

脚本终止
让当前指定位置的代码之后的代码不再执行。为了调试错误。

php中有三种终止方式:exit,die和return
exit与die一致:都是语法结构
语法:exit;/exit();/die;/die();
表示代码执行到该处时候结束执行,如果有输出则输出

return:用在函数中代表返回值,表示当前函数执行到return语句的时候,不再向下执行函数体,直接回到函数调用处。
如果在脚本中出现,代表当前脚本执行终止:return依然代表返回值,数据是返回给文件被包含处。


return在文件中有这么一个特性:能够将文件中的数据传递给另外一个文件。通常会利用这个特性做系统的配置文件。


作业
1.完善空心菱形作业自定义函数
返回值
返回值指的当函数调用结束以后,该函数给外部调用处返回一些列的数据(数据类型任意:八个数据类型)

如果函数没有任何返回值,可以理解为函数返回的是NULL。
PHP中函数可以没有返回值。


参数传值
传值方式:值传递(默认的)和引用传递
值传递:将实参复制一份,传递给形参(形参与外部实参变量没有关系),值传递可以通过在调用函数的时候直接使用数据常量。
引用传递:形参是获得实参所指向的数据的内存地址,形参与实参共同指向同一个内存地址。

引用传递
引用传递语法:在定义函数的时候,给形参使用地址符号&,调用引用传递的函数的时候,必须使用变量(实参必须是变量:不能是数据常量)传递。


引用传递不能使用数据常量


内存分析

特别注意:引用传值只能使用变量传数据。

参数作用
将函数外部的数据传入到函数内部供其使用


作用域
作用域概念
1.什么是作用域?
作用域指的就是变量所能使用的范围。

作用域分为两类:全局作用域和局部作用域。

2.全局作用域和局部作用域定义?
全局作用域
只要在函数外部定义的变量都是全局作用域
局部作用域
在函数内部定义的变量称之为局部作用域

3.全局作用域和局部作用域功能?
局部作用域的变量只能在函数的内部使用,函数外部不能使用。

全局作用域:
JS中:全局作用域的变量可以在函数的内外都使用
PHP中:全局作用域只能在函数外部使用

作用域证明


跨域使用变量
想要在函数的内部使用全局变量,在函数的外部使用局部变量。

局部使用全局作用域
方案一:
让函数在定义的时候采用引用传值。

方案二:
使用系统预定义超全局变量$GLOBALS,该变量保存了所有的全局变量。


全局使用局部作用域
方案一
让函数在定义的时候采用引用传值。

方案二
返回值:将内部数据(局部变量)作为返回值。

方案三
使用global关键字:将局部变量全局化(在创建局部变量的同时,创建全局变量:当前全局变量不存在,如果存在就会产生引用)
引用全局变量


创建全局变量


内存分析1:引用全局变量


内存分析2:创建全局变量


参数默认值
在定义函数的时候,给形参指定默认值,在进行函数调用的时候,可以不给有默认值的参数传递实参。

语法:形参 = 默认值
注意:如果一个参数列表中存在有默认值的参数,那么该参数必须在最右边(后面)


静态变量
1.什么是静态变量?
在函数内部使用static关键字修饰的变量,函数在多次调用的时候能够共同使用该变量(跨函数共享变量)

语法:static $变量


内存分析


匿名函数
没有函数名的函数叫匿名函数。

语法
变量 = function(参数列表){
//函数体
//返回值
}; //整体是赋值语句,所以需要语句结束符


匿名函数的使用
因为变量保存了函数的地址,所以必须通过变量来找到函数。系统要识别函数,只认括号,需要给变量增加一个括号来告诉系统当做函数处理。


匿名函数的使用
匿名函数通常用于做别的函数的参数:回调函数

伪类型
指的是定义好的函数,需要指定的数据类型作为参数或者返回值,是一种对用户的帮助。
mixed:数据类型有很多种,不具体限制
number:数字类型:整型和浮点型
callback:回调函数,指的需要一个可以被执行的函数的名字字符串。

void:null,不需要参数或者没有返回值

可变函数
可以变化的函数,函数名字是一个变量的值,可以通过变量直接访问函数。


数据类型判断
作用
判断用户提交的数据,判断数据的有效性,是否符合指定的数据约束(规范)。

判断方式
所有的数据类型的判断,都是通过函数来实现。函数都是以is_开始,后面跟对应的数据类型。
所有的函数的返回值都是布尔类型:如果是对应的类型返回true,否则返回false
is_bool:判断是否是布尔类型
is_float:判断浮点型
is_integer:判断整型
is_object:判断对象
is_array:判断数组
is_string:判断字符串
is_resource:判断资源
is_scalar:scalar是标量的,判断是基本数据类型:整型,浮点型,布尔型和字符串型
is_null:是否为空
is_numeric:判断数字或者纯数字组成的字符串

标量判断


数值判断


gettype:获得数据类型
settype:改变数据类型


数据类型转换
将数据的类型转换成指定的需要的数据类型。

php是一种弱类型语言。因此在php中有两种方式能够修改数据类型:自动转换和强制转换。

自动转换
系统根据自己的需求,将不合理的数据类型转换成需要的数据类型。不需要用户(代码)做任何额外的事情。

if条件一定是布尔类型,但是程序所给定的表达式的结果不一定是布尔类型,系统就会自动转换。
碰到一些指定的运算符的时候,也会出现自动转换。

字符串转数值规则
1.从左边开始碰到第一个不为数字或者小数点的字符截止
2.如果第一个字符不是数字或者小数点,那么该字符串结果是0
3.只能读取最多一个小数点

强制转换
用户通过代码强制的去将某个数据的数据类型转换成目标数据类型。
settype:就能够强制的转换数据类型。

语法二:
(数据类型)变量
int,integer:整型
bool,Boolean:布尔
float:浮点
string:字符串
array:数组
object:对象


php变量的复制:写时复制
$a = 100;
$b = $a; //值传递
//全局区中只有一个数据:100
$b = 50; //修改变量:写
//系统会自动的将原来只有一份100,变成两份100,并且修改其中一份b为50

文件包含

1.什么是文件包含?
字面意思是一个文件中包含另外一个文件,希望对应文件的内容可以在当前文件中被使用。

意义
布局
将界面结构中部分被重用的结构部分抽离出来形成单独的文件,然后在每一次需要使用该部分结构的时候,将对应的代码给包含进去。


优点:节省工作量,方便修改(提升维护效率)
代码重用
将代码中需要共用的部分代码(函数)抽离出来,形成对应的函数文件(php),然后在需要使用的地方加载当前文件,从而可以实现代码的重用。


文件包含
php通过某种语法,将一个对应php(不一定是php文件)文件中内容(php代码)加载到一个需要使用该代码的php脚本中,从而形成脚本的代码的一部分,帮助脚本正常工作。

语法:有两套文件包含方式
include:include ‘文件名字’ / include(‘文件名字’)
require:require ‘文件名字’ / require (‘文件名字’)


文件包含逻辑
文件可以被包含:文件包含语句属于执行性语句,符合代码的逐行执行条件,顺序执行。被包含文件是独立编译,但是可以实现数据共享。


文件重复包含
include_once/requrire_once:对一个文件进行多次包含的时候,只会包含一次。


require和include区别
都是包含文件,都是独立编译。
区别在于require一定会去包含对应的文件,如果文件不存在那么会导致致命错误,从而导致代码不再继续执行。
include会尝试去包含文件,如果不存在,会给一个错误提示,但是不影响后续代码的继续执行。


注意:文件包含可以是为了使用被包含文件里面的内容而包含,也可以是为了让被包含文件使用当前文件里面的内容而包含。

被包含文件可以不是php文件


文件路径管理

文件路径分为两种:绝对路径和相对路径
绝对路径:文件相对磁盘根目录开始的路径(URL)
相对路径:与当前文件相对应的路径(以当前文件为参照点)

文件的包含可以使用任意一种文件路径:建议使用绝对路径。

绝对路径包含


相对路径包含


相对路径:
什么都不用表示当前文件相对路径
./:表示当前目录
../:上级目录
/:网站根目录

PHP在包含文件的时候,如果存在嵌套好办,那么文件的相对路径会发生改变,但是绝对路径不会改变。


绝对路径没有相对路径速度快,如果在项目中能够确定不存在文件包含嵌套或者有嵌套但是不会影响相对路径的时候,可以使用相对路径进行文件包含。

脚本终止
让当前指定位置的代码之后的代码不再执行。为了调试错误。

php中有三种终止方式:exit,die和return
exit与die一致:都是语法结构
语法:exit;/exit();/die;/die();
表示代码执行到该处时候结束执行,如果有输出则输出

return:用在函数中代表返回值,表示当前函数执行到return语句的时候,不再向下执行函数体,直接回到函数调用处。
如果在脚本中出现,代表当前脚本执行终止:return依然代表返回值,数据是返回给文件被包含处。


return在文件中有这么一个特性:能够将文件中的数据传递给另外一个文件。通常会利用这个特性做系统的配置文件。


作业
1.完善空心菱形作业

http://www.jsqmd.com/news/638452/

相关文章:

  • SDMatte创意广告生成:动态结合产品与多变场景的营销素材制作
  • 暗黑风格AI写作工具:Qwen3-4B-Instruct功能体验与效果测评
  • 智慧能源网络:分布式发电与电网调度的平衡
  • 深圳市超鸿再生资源回收有限公司--深圳盐田区工厂酒楼设备回收电话 - LYL仔仔
  • Windows Cleaner:5分钟快速解决C盘爆红的终极免费系统清理工具
  • SenseVoiceSmall实战测评:多语言富文本识别到底有多好用?
  • 有实力的凤翔物业公司探讨,说说天津凤翔物业靠谱程度与规模 - myqiye
  • YOLO12消防应急实战:烟雾火焰检测+逃生通道识别双模部署
  • MCVR 多人协同平台
  • 非标零件1件起做,打样流程是怎样的?从图纸到出件全流程 - 莱图加精密零件加工
  • Graphormer分子建模实战:基于property-guided checkpoint的迁移学习微调指南
  • 百度网盘下载加速终极指南:免会员实现满速下载的完整教程
  • Java的java.lang.ProcessHandle进程信息与子进程管理的现代API
  • 四可与防逆流的协同之道:构建红区治理的技术组合拳
  • 可靠的工业风扇供应企业讲讲,大型车间适合的品牌怎么选择 - 工业品网
  • Jasminum技术架构深度解析:中文文献元数据智能提取与PDF结构化处理
  • 网易邮箱首发 ClawEmail:给你的Agent一个专属邮箱身份
  • Zotero Citation插件终极指南:3步彻底解决Word文献引用难题
  • 重庆众申机电设备有限公司:重庆九龙坡区发电机租赁发电机出售电话 - LYL仔仔
  • 聊聊家具五金柜门合页修复固定板推荐厂商,哪个口碑好 - 工业设备
  • 阴阳师自动化脚本终极指南:每天节省2小时的智能游戏托管方案
  • Spring Boot自动配置原理解析
  • 5分钟快速上手:iFakeLocation免费iOS虚拟定位终极教程
  • 大数据去重必学:Bitmap与布隆过滤器,看完秒懂核心原理
  • JavaEE|计算机是如何工作的
  • AI读脸术工具推荐:支持自定义阈值的开源镜像测评
  • 总结承重好且不易变形的抽屉导轨,靠谱的厂家推荐哪家 - 工业品牌热点
  • Coordinate Attention for Efficient Mobile Network Design笔记
  • 手机版ChatGPT和Gemini里复制代码怎么用 - DS随心转小程序
  • 麻省理工学院团队突破3D世界建模难题