function <functionName> ([<type> ]...<$paramName>) {}
例如:
function someVariadricFunc(...$arguments) {
foreach ($arguments as $arg) {
// do some stuff with $arg...
}
}
someVariadricFunc(); // an empty array going to be passed
someVariadricFunc('apple'); // provides a one-element array
someVariadricFunc('apple', 'pear', 'orange', 'banana');
func(null); //as nullable parameter
func(new Object()); // as parameter of declared type
但对于可选值签名,应如下所示。
function func(Object $object = null) {} // In case of objects
function func(?Object $object = null) {} // or the same with nullable parameter
function func(string $object = '') {} // In case of scalar type - string, with string value as default value
function func(string $object = null) {} // In case of scalar type - string, with null as default value
function func(?string $object = '') {} // or the same with nullable parameter
function func(int $object = 0) {} // In case of scalar type - integer, with integer value as default value
function func(int $object = null) {} // In case of scalar type - integer, with null as default value
function func(?int $object = 0) {} // or the same with nullable parameter
它可以被调用为
func(); // as optional parameter
func(null); // as nullable parameter
func(new Object()); // as parameter of declared type
7条答案
按热度按时间2hh7jdfx1#
如果不知道需要处理多少属性,可以使用PHP 5.6中引入的变量参数列表标记(
...
)(请参阅此处的完整文档)。语法:
例如:
正如您所看到的,这个标记基本上将所有参数转换为一个数组,您可以按照自己喜欢的任何方式处理它。
oxf4rvwz2#
从7.1开始,有一个类型提示可为空的参数
它适用于以下情况:
但对于可选值签名,应如下所示。
它可以被调用为
fgw7neuy3#
与手册非常相似,在参数定义中使用等号(
=
):ny6fqffe4#
参数的默认值必须是常量表达式。它不能是变量或函数调用。
但是,如果您需要此功能:
当然,假设
$bar
不应该是布尔值。zkure5ic5#
我也发现了一些有用的注解:
xoefb8l86#
为可选参数指定默认值。
js4nwp547#
date函数的定义如下:
通常,您会将默认值设置为:
然而,只有 * literal * 才是有效的默认参数,这就是为什么我在第一个例子中使用
null
作为默认参数,而不是$timestamp = time()
,并将其与null检查结合起来。