条件为true时,仅将参数附加到类

时间:2017-10-08 01:20:09

标签: php

我正在查看这段代码并注意到它似乎只是运行2次检查的代码很多,我记得用C#进行编码并且有一种方法可以将代码简化为一次检查但添加一个(某些东西)在它,有没有办法在PHP中做这样的事情?

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);
}

1 个答案:

答案 0 :(得分:0)

我会这样做:

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

因为我并非100%确定$config->get('core:twig.caching.enabled');返回的内容,因此上述解决方案将与原始解决方案一样。

但是,如果返回值仅为truefalse,并且可以移交array('cache' => true)array('cache' => false),则可以进一步减少此值:

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