可选参数
Optional Parameter
我正在编写一个带有可选参数的 php 函数,但似乎无法让它工作。
function myFunc($param,$optional){
$var = $optional || [];
}
逻辑是,如果使用 $optional
参数调用它,它会设置 $var
如果留空,则设置 $optional
的值 $var
设置为新数组 []
。不过我得到了一个未定义的变量 $var
。
问题:为什么我不能在我的函数中声明可选参数?
你可以这样使用:
function myFunc($param, $optional = '') {
$var = $optional;
if ($var == '') {
$var = [];
}
}
//without parameter
myFunc('abc');
//with parameter
myFunc('abc', 'optional param');
一般示例:
function myFunc($param, $optional1 = '', $optional2 = []) {
通常尽量将所有可选参数放在末尾
您必须在函数参数中声明一个可选参数。它不起作用,因为您必须告诉 PHP 解释器需要一个参数。
function myFunc($param, $optional = null){
// ...
}
在PHP 7+中,您可以使用扩展运算符进行参数解包以表示可选参数。这比向函数发送参数数组要好。
function myFunc($param, ...$optional){
print_r($optional);
}
myFunc('baz'); // Array ( )
myFunc('baz', 'foo', 'foobar', 'whoo'); // Array ( [0] => foo [1] => foobar [2] => whoo )
我正在编写一个带有可选参数的 php 函数,但似乎无法让它工作。
function myFunc($param,$optional){
$var = $optional || [];
}
逻辑是,如果使用 $optional
参数调用它,它会设置 $var
如果留空,则设置 $optional
的值 $var
设置为新数组 []
。不过我得到了一个未定义的变量 $var
。
问题:为什么我不能在我的函数中声明可选参数?
你可以这样使用:
function myFunc($param, $optional = '') {
$var = $optional;
if ($var == '') {
$var = [];
}
}
//without parameter
myFunc('abc');
//with parameter
myFunc('abc', 'optional param');
一般示例:
function myFunc($param, $optional1 = '', $optional2 = []) {
通常尽量将所有可选参数放在末尾
您必须在函数参数中声明一个可选参数。它不起作用,因为您必须告诉 PHP 解释器需要一个参数。
function myFunc($param, $optional = null){
// ...
}
在PHP 7+中,您可以使用扩展运算符进行参数解包以表示可选参数。这比向函数发送参数数组要好。
function myFunc($param, ...$optional){
print_r($optional);
}
myFunc('baz'); // Array ( )
myFunc('baz', 'foo', 'foobar', 'whoo'); // Array ( [0] => foo [1] => foobar [2] => whoo )