3

我养成了使用 return 来阻止代码序列执行的习惯,即使 return 用于不返回任何内容的函数也是如此

$form = $this->getForm('activity');    
$this->view->form = $form;
return $this->render('create'); // Like this

在 Zend Framework 中,它停止执行当前操作并呈现名称为函数参数的视图$this->render()

我最近在我的代码上运行了PHPMD,所有这些语句都被标记为Void function result used

我想知道,这种习惯有多糟糕,什么会更好?

4

1 回答 1

2

我看到的唯一一点是$this->render('create')返回void不应再次返回。

如果该操作不需要任何返回值(Zend Framework 1),那么您应该将您的return放在单独的一行上,而不需要任何返回值。

$form = $this->getForm('activity');    
$this->view->form = $form;
$this->render('create'); // Like this
return;

这是 Zend Framework 中的常见语法,至少对于forward. 你也会经常看到它redirect,但是这个已经在 Zend 代码中有一个退出语句。根据ZF1 文档,前进的目的是执行当前操作,然后执行第二个操作。但在他们的代码示例中,他们也使用return $this->_forward(). 然而,在我的工作中,我学会了把它return放到一个新的线上,以明确没有任何东西返回。

作为替代方案,您当然可以使用if else块。然而,在我看来,它们并不总是更清晰(而且我不喜欢这些严格的 Java 规则)。

if ($something) {
    $this->_forward();
} else {
    // do other code
}
于 2013-03-26T12:26:36.467 回答