4

我想将选项保留在 Config 类中,因此在更改(例如)MySQL 数据库时不需要更改几个(相同的)值。到目前为止,我正在访问这些选项,例如:

Config::$credentials["mysql"]["username"]

现在,我想为一个函数设置一个“动态”默认值,但 PHP 不会让我做类似的事情

public function get_single_db_entry($uid, $table=Config::$credentials["mysql"]["table"]) {
    // logic here...
}

我想知道的是:是否有机会保持默认参数的值动态?

4

2 回答 2

3

我认为这是不可能的。但是您可以为其呈现静态默认值,并且在第一行中,如果调用者未更改该值,则只需分配动态值。

public function get_single_db_entry($uid, $table=0) {
    if $table == 0 
      $table = Config::$credentials["mysql"]["table"]
    // logic here...
}

有点解决方法,但它应该工作。

于 2012-04-26T13:17:38.480 回答
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)

查看文档以获取更多示例

于 2015-07-09T10:27:09.750 回答