2017-10-08 4 views
0

私はこのコードを見て、2つのチェックを実行するだけのコードが多かったことに気付き、C#でコードを記憶していました。それに何か(何か)を追加すると、PHPでこれを行う方法がありますか?条件trueのときにクラスにパラメータを追加するだけ

if ($config->get('core:twig.caching.enabled')) { 
    $this->twig = new \Twig_Environment($loader, array(
     'cache' => $config->get('core:template.cache_directory'), 
    )); 
} 
else { 
    $this->twig = new \Twig_Environment($loader); 
} 
+2

を[三項演算子](http://php.net /manual/en/language.operators.comparison.php#language.operators.comparison.ternary) '$ this-> twig = condition? value1:value2; ' – Jeff

+1

しかし、私はあなたのコードをより読みやすくして、三元語と考えるでしょう。私はあなたがそれを得たようにそれを残すだろう。 – Jeff

答えて

0

私は、このようにそれを行うだろう:

$cache = $config->get('core:twig.caching.enabled'); 
$arr = ($cache) ? array('cache' => $cache) : array(); 
$this->twig = new \Twig_Environment($loader, $arr); 

を私は$config->get('core:twig.caching.enabled');があなたの元のように動作します上記の溶液を返さないものではない100%確信しているので。

しかし、戻り値がのみtrueまたはfalsearray('cache' => true)またはarray('cache' => false)以上の手にそのOKならば、あなたはさらにこれを減らすことができるよりある場合:

$this->twig = new \Twig_Environment($loader, array(
    'cache' => $config->get('core:twig.caching.enabled') 
)); 
+0

コンストラクタがnullを許可しないので、これを行うことはできません。型配列でなければなりません。 – q1245943

+0

これはあなたの質問で間違っています: '$ this-> twig = new \ Twig_Environment($ loader);' – Webdesigner

関連する問題