优化此PHP代码的提示

时间:2017-11-03 10:34:00

标签: php drupal-8

以下是我愿意压缩的代码:

$somefield = 0;
if ($config->get('var1.one') && is_numeric($config->get('var1.one'))) {
  $somefield = $this->entityManager->getStorage('node')->load($config->get('var1.one'));
}
$different_field = 0;
if ($config->get('var2.two') && is_numeric($config->get('var2.two'))) {
  $different_field = $this->entityManager->getStorage('node')->load($config->get('var2.two'));
}

2 个答案:

答案 0 :(得分:0)

在您发表评论后,我认为您想要的是:

$somefield = checkVar("var1.one");
$different_field = checkVar("var2.two");

function checkVar($name) {
  if ($config->get($name) && is_numeric($config->get($name))) {
    return $this->entityManager->getStorage('node')->load($config->get($name));
  } else {
    return 0;
  }
}

我认为这就是你想要的。我使用的名称不一定是最好的,你应该使用一些更适合函数的实际使用。

答案 1 :(得分:0)

另一种方法。

        $field = [];
        $array= ['var1.one', 'var2.two'];

        for ($i = 0; $i < count($array); $i++) {
            if ( $config->get($array[i] ) && is_numeric($config->get($array[$i])) )
            {
                array_push($field,  $this->entityManager->getStorage('node')->load($config->get($array[$i])));
            }
        }