2017-01-07 9 views
1

私はLaravelフレームワークを使用しています。また私はmy.phpという名前のファイルを持っています。このファイルには私のウェブサイトの設定がすべて含まれています。式をパラメータのデフォルト値として使用するにはどうすればよいですか?

<?php 

return [ 

    'server' => [ 
     'root_path' => 'Z:\\', 
    ], 

    /* 
    * Website Status: 
    * 0 = debugging mode 
    * 1 = using mode 
    */ 
    'status' => [ 
     'mode' => 0, 
    ], 

]; 

my.phpファイルがconfigフォルダにある次のように述べている。同じように見えます。だから私はこのようconfig()機能を使用して、そのファイルの任意の値にアクセスすることができます。

echo config(my.status.mode); 
//=>0 

私の問題を:私は、関数のパラメータのデフォルト値としてconfig(my.status.mode)を使用する必要があります。

public function ($m = config(my.status.mode)){ 
    // do stuff 
} 

ご存知のように、それはスロー:このよう

構文エラー、予期しない '('、期待 ')'

また、私のIDEはスロー:

式はパラメータのデフォルト値として使用できません


これを実装する方法を探しています。私はこれのようにすることができます:

public function ($m = null){ 

    $m = is_null ($m) ? config(my.status.mode) : $m; 

    // do stuff 
} 

しかし、それは清潔ではありません..何か良い選択肢はありますか?

+0

私はそれが唯一の選択肢だと思います –

答えて

0

それは可能ではないですが、あなたはPHP 7でより濃縮液を探している場合は、新しい??演算子を使用することができます:代替、you can create your own global Laravel helper、ヌルの変数をチェックしますconfig()ヘルパーのラッパーとして

echo $m ?? config('my.status.mode'); 

をそして、設定から結果を返します:

$m = default('status.mode', $m); 

ヘルパーは次のようになります。

if (! function_exists('default')) { 
    function default($config, $value) 
    { 
     return is_null($value) ? config('my.'.$config) : $value; 
    } 
} 

この方法の利点は、いつでもこのヘルパーに機能を追加できることです。たとえば、コントローラやモデルでこれを行わずに、現在の言語に翻訳された設定値を取得することができます。

関連する問題