我想将选项保留在 Config 类中,因此在更改(例如)MySQL 数据库时不需要更改多个(相同的)值。到目前为止,我正在访问这些选项,例如:
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...
}
有点解决方法,但它应该可以工作。
在这种情况下,您可以使用我的小库 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)
查看文档以获取更多示例