2013-03-26 73 views
3

功能我已经developped使用返回停止执行的代码序列的习惯,即使回报上不返回任何寻找一种方式来停止进程,同时呼吁没有回报

$form = $this->getForm('activity');  
$this->view->form = $form; 
return $this->render('create'); // Like this 
函数中使用

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

我最近在我的代码跑PHPMD和所有那些语句被标记为Void function result used

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

回答

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 documentation,转发的意图是执行当前操作,然后执行第二个操作。但在他们的代码示例中,他们也使用return $this->_forward()。然而,在我的工作中,我学会了将return换成新的行,以表明没有任何回报。

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

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

使用'回报;'给你一个'缺少返回argument'这是不是真的好(是它的Zend框架1) – 2013-03-26 12:28:20

+0

快速的问题。回报;返回null? – Ignas 2013-03-26 12:28:22

+0

@Ignas:经过测试,确实如此。 – Aufziehvogel 2013-03-26 12:34:55

相关问题