2013-03-26 4 views
3

Я разработана в привычку использовать возвращение, чтобы остановить последовательность кода от исполнения, даже если возвращение используется на функцию, которая ничего не возвращаетИщете способ, чтобы остановить процесс, при вызове функции без возврата

$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, но у этого уже есть оператор exit в коде Zend. Согласно ZF1 documentation, намерение форварда состоит в том, чтобы выполнить текущее действие, а затем выполнить второе действие. Но в их примере кода они также используют return $this->_forward(). Однако на моей работе я научился помещать return на новую строку, чтобы ясно показать, что ничего не возвращается.

В качестве альтернативы вы можете, конечно, использовать блоки if else. Однако, на мой взгляд, они не всегда яснее (и я не поклонник этих строгих правил Java).

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

используя 'возвращения;' дает вам 'недостающее возвращение argument', который не является на самом деле лучше (да и его Zend Framework 1) –

+0

Быстрый вопрос. Возвращается; return null? – Ignas

+0

@Ignas: Протестировано и да, конечно. – Aufziehvogel