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;

There are also ability to typecasting, for example if your variable's value should be integer, so use this:

$id = ValueResolver::toInteger('6 apples', 1); // returns 6
$id = ValueResolver::toInteger('There are no apples', 1); // returns 1 (used default value)

Check the docs for more examples

于 2015-07-09T10:27:09.750 に答える