优化此 PHP 代码的技巧

Tips for optimising this PHP code

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

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

经过你的评论,我想你想要的是这样的:

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

我想这就是你想要的。我使用的名字不一定是最好的,你应该使用更适合实际使用功能的名字。

另一种方法。

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