我想在Config类中保留选项,因此在更改(例如)MySQL数据库时,我不需要更改几个(相同的)值。到目前为止,我正在访问以下选项:
Config::$credentials["mysql"]["username"]
现在,我想为一个函数设置一个“动态”默认值,但PHP不会让我这样做
public function get_single_db_entry($uid, $table=Config::$credentials["mysql"]["table"]) {
// logic here...
}
我想知道的是:有没有机会保持默认参数的值是动态的?
答案 0 :(得分:2)
我认为这种方式不可能。但是你可以为它渲染一个静态默认值,并且在第一行中,如果调用者没有改变该值,你只需分配动态值。
public function get_single_db_entry($uid, $table=0) {
if $table == 0
$table = Config::$credentials["mysql"]["table"]
// logic here...
}
有点解决方法,但应该可行。
答案 1 :(得分:0)
在这种情况下,您可以使用我的小型库ValueResolver,例如:
$table = ValueResolver::resolve($table, Config::$credentials["mysql"]["table"]);
并且不要忘记使用命名空间use LapaLabs\ValueResolver\Resolver\ValueResolver;
还可以进行类型转换,例如,如果您的变量的值应该是integer
,那么请使用:
$id = ValueResolver::toInteger('6 apples', 1); // returns 6
$id = ValueResolver::toInteger('There are no apples', 1); // returns 1 (used default value)
查看docs了解更多示例