在 PHP 中使用常量作为默认函数值

2022-08-30 18:08:44

这合法吗?

<?php

function ftw($foo = 'pwnage', $nub = MENU_DEFAULT_VALUE, $odp = ODP_DEFAULT_VALUE) {
      //lots_of_awesome_code
}

?>

其中 和 是以前在文件中定义的常量。MENU_DEFAULT_VALUEODP_DEFAULT_VALUE


答案 1

是的,这是合法的。

手册中

默认值必须是常量表达式,而不是(例如)变量、类成员或函数调用。

常量完全符合该要求。


答案 2

在 OOP 上下文中,还可以使用类成员常量作为默认方法参数值。

class MyClass
{
    const A = 1;

    public function __construct($arg = self::A)
    {
        echo $arg;
    }
}

推荐