PHP 函数
1 |
|
-
PHP 中的所有函数和类都具有全局作用域
-
PHP 不支持函数重载,也不可能取消定义或者重定义已声明的函数
-
传参可以传值
$value
,也可以引用&$value
后者可以直接访问变量 -
默认传参形式:
$type = XXX
,默认值必须是常量表达式,任何默认参数必须放在任何非默认参数的右侧
传参
1 |
|
-
上述格式可以限制传参类型
-
通过
declare
严格类型,不再对函数传参进行自动转换,见严格类型
1 |
|
- (PHP 5.6)通过
...
传递可变数量的参数列表
1 |
|
- (PHP 5.5 -)使用函数 func_num_args(),func_get_arg(),和 func_get_args()
返回值
-
函数不能返回多个值,但可以通过返回一个数组来得到类似的效果
-
从函数返回一个引用,必须在函数声明和指派返回值给一个变量时都使用引用运算符 &
1 |
|
- (PHP 7)可以指定返回值,受到 严格类型 影响
1 |
|
可变函数
1 | $func = 'foo'; |
- 也可以用可变函数的语法来调用一个对象的方法
匿名(闭包)函数(PHP 5.3)
1 |
|
1 | $example = function () use ($message) { |
- (PHP 5.4)对匿名函数使用
static
可以防止类对其绑定(变量 $this)
生成器
yield
关键字:
-
yield $id;
$data = (yield $value);
-
yield $id => $fields;
$data = (yield $key => $value);
指定键名 -
yield;
返回 NULL -
生成器返回的迭代对象可以迭代引用变量:
1
2
3
4
5function &gen_reference() {
$value = null;
yield $value;
} -
yield from
调用另外的可迭代对象