函数
1. 语法
函数是实现代码复用的重要方式,在所有编程语言中均如此
function 函数名称(类型: 参数列表): 返回值类型
{
// 函数体
return 返回值;
}
序号 |
名称 |
描述 |
1 |
function |
声明函数 |
2 |
函数名称 |
符合 PHP 标识符命名规范,不区分大小写 |
2 |
参数列表 |
零个或多个接收外部传入到函数的变量 |
2 |
{... |
创建出一个封闭的函数作用域 |
2 |
函数体 |
由零个可多个合法的 PHP 语句组成 |
2 |
return 值 |
将执行结果返回函数调用者[可选] |
2 |
...} |
函数执行结束,如果没有return ,则返回null |
2. 类型
序号 |
类型 |
语法 |
描述 |
1 |
自定义函数 |
function getName(){...} |
用户根据业务需求创建 |
2 |
系统函数 |
substr(), count()... |
也叫预定义函数,不必声明直接调用 |
3 |
可变函数 |
$funcName(); |
函数名使用变量表示 |
4 |
匿名函数 |
$f = function (){...} |
也叫”闭包”或”函数表达式”,常用做回调处理 |
3. 返回值
序号 |
场景 |
描述 |
1 |
return |
可以返回任何类型的值,包括函数类型 |
2 |
无return |
遇到} 也会返回, 默认返回null |
序号 |
返回值类型 |
描述 |
1 |
string |
字符串拼接 |
2 |
array |
数组 |
3 |
json |
JSON 字符串 |
4 |
serialize |
序列化字符串 |
json 和序列化,使用时需要进行解码操作
4. 参数
- 调用者可以通过参数将数据传递到函数中
- 参数是以逗号分隔的表达式列表
- 参数按照从左到右的顺序求值
参数类型
序号 |
类型 |
描述 |
1 |
值参数 |
默认传参方式 |
2 |
引用参数 |
改变原始调用参数值 |
3 |
默认参数 |
调用时允许省略的参数 |
4 |
剩余参数 |
调用参数数量不确定 |
- 剩余参数:
...
- 1.用在函数的形式参数列表中,表示收集,将多个离散的参数打包到一个数值中处理
- 2.用在函数的调用参数列表中,表示展开,还原将一个数组展开成一个个离散的值
function demo6(...$arr) : int
{
// return $arr;
return array_sum($arr);
// return array_product($arr);
}
// print_r(demo6(2,5,8,9,48));
// ...
// 1.用在函数的形式参数列表中,表示收集,将多个离散的参数打包到一个数值中处理
// 2.用在函数的调用参数列表中,表示展开,还原将一个数组展开成一个个离散的值
$args = [1,2,3,4,5,6,9,12];
print_r(demo6(...$args));
5. 回调函数
语法 |
类型 |
执行方式 |
应用场景 |
匿名函数 |
闭包Closure |
异步 |
函数参数 |
异步执行,是指当前函数的执行并不会中断当前程序的执行流程
6. 命名空间
- 使用目录来整理文档, 允许将同名文档,存储在不同的目录下面即可
- 不同目录下的同名文件,访问时必须带上的它的目录名称,以未区别
- 命名空间采用类似的思想,同名函数,只要声明在不同空间中即可
- 同样, 访问这些函数时, 也需要带上它的命名空间才可以
个人总结
- 通过对函数细致的学习,让我对函数的了解更加的细致,刚开始的时候我觉得自己对于函数这一块就只知道一个基本的语法,其他的感觉知道的特别少,经过老师细致的教学,让我也知道了一些其他并且很难得知识,比如类型中的闭包函数、返回值中得JSON返回、函数参数中得圣剩余参数,都让我觉得刚开始接触很难得听懂,要多理解,闭包的知识我现在就是简单的理解为将函数放到一个变量中,这样函数就相当于封闭起来,简单的理解为闭包。函数中的剩余参数我觉得尤为重要,但更重要的是理解
...
这个参数归纳的代码,这个收集数组和分离数组都是非常重要的,对于以后数组特别多的时候,处理起来也是简单且快捷。