PHP:函数的动态默认值';参数
我希望在Config类中保留选项,因此在更改(例如)MySQL数据库时不需要更改几个(相同的)值。到目前为止,我正在访问以下选项:PHP:函数的动态默认值';参数,php,function,parameters,default,Php,Function,Parameters,Default,我希望在Config类中保留选项,因此在更改(例如)MySQL数据库时不需要更改几个(相同的)值。到目前为止,我正在访问以下选项: Config::$credentials["mysql"]["username"] 现在,我想为函数设置一个“动态”默认值,但PHP不允许我这样做 public function get_single_db_entry($uid, $table=Config::$credentials["mysql"]["table"]) { // logic here.
Config::$credentials["mysql"]["username"]
现在,我想为函数设置一个“动态”默认值,但PHP不允许我这样做
public function get_single_db_entry($uid, $table=Config::$credentials["mysql"]["table"]) {
// logic here...
}
我想知道的是:是否有机会保持默认参数值的动态性?我认为这是不可能的。但是您可以为它呈现一个静态默认值,在第一行中,如果调用者未更改该值,您只需分配动态值
public function get_single_db_entry($uid, $table=0) {
if $table == 0
$table = Config::$credentials["mysql"]["table"]
// logic here...
}
有一点变通方法,但应该可以使用。在这种情况下,您可以使用我的微型库,例如:
$table = ValueResolver::resolve($table, Config::$credentials["mysql"]["table"]);
不要忘记使用namespace使用LapaLabs\ValueResolver\Resolver\ValueResolver代码>
还可以进行类型转换,例如,如果变量的值应为整数
,请使用以下方法:
$id = ValueResolver::toInteger('6 apples', 1); // returns 6
$id = ValueResolver::toInteger('There are no apples', 1); // returns 1 (used default value)
查看更多示例为什么不为此使用常量?@llamerr我喜欢数组外观;)(但常量在这里也不起作用,是吗?)常量很好,为什么不呢?我还将其作为类常量进行了测试,但不能将类常量作为数组,所以需要一些其他的东西,比如在答案中