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

私が見る唯一のポイントは、再び返されるべきではないvoid$this->render('create')を返すということです。

アクションに戻り値が必要ない場合(Zend Framework 1)、return戻り値のない別の行にを配置する必要があります。

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

これは、少なくとも。のZendFrameworkで一般的な構文ですforward。についてもよく見られますがredirect、これにはすでにZendコード内にexitステートメントがあります。ZF1のドキュメントによると、転送の目的は、現在のアクションを実行してから、2番目のアクションも実行することです。ただし、コード例では、も使用していますreturn $this->_forward()。しかし、私の仕事では、return何も返されないことを明確にするために、を新しい行に入れることを学びました。

別の方法として、もちろんif elseブロックを使用することもできます。ただし、私の意見では、それらは必ずしも明確ではありません(そして、私はこれらの厳密なJavaルールのファンではありません)。

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