这合法吗?
<?php
function ftw($foo = 'pwnage', $nub = MENU_DEFAULT_VALUE, $odp = ODP_DEFAULT_VALUE) {
//lots_of_awesome_code
}
?>
其中MENU_DEFAULT_VALUE
和ODP_DEFAULT_VALUE
是先前在文件中定义的常量。
答案 0 :(得分:23)
答案 1 :(得分:14)
在OOP上下文中,您还可以使用类成员常量作为默认方法参数值。
class MyClass
{
const A = 1;
public function __construct($arg = self::A)
{
echo $arg;
}
}
答案 2 :(得分:10)
你为什么不试试?
尽管如此,以防您现在可以测试,以下代码:
define('MENU_DEFAULT_VALUE', 10);
define('ODP_DEFAULT_VALUE', 'hello');
function ftw($foo = 'pwnage', $nub = MENU_DEFAULT_VALUE, $odp = ODP_DEFAULT_VALUE) {
var_dump($foo);
var_dump($nub);
var_dump($odp);
}
ftw();
给出了这个输出:
string 'pwnage' (length=6)
int 10
string 'hello' (length=5)
所以我会说,是的,它是有效的: - )