在没有返回的情况下调用函数时寻找停止进程的方法

时间:2013-03-26 12:20:56

标签: php zend-framework coding-style phpmd

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

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

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

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

我在想,这种习惯有多糟糕,哪种更好?

1 个答案:

答案 0 :(得分: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代码中有一个exit语句。根据{{​​3}},转发的意图是执行当前操作,然后执行第二个操作。但在他们的代码示例中,他们也使用return $this->_forward()。然而,在我的工作中,我学会了将return放到一个新行上,以明确没有返回任何内容。

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

if ($something) {
    $this->_forward();
} else {
    // do other code
}