Ищете способ остановить процесс при вызове функции без возврата

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

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

В Zend Framework он останавливает выполнение текущего действия и отображает представление, имя которого является параметром функции $this->render(),

Я недавно запустил PHPMD для своего кода, и все эти операторы помечены как Void function result used

Мне было интересно, насколько плоха эта привычка и что будет лучше?

1 ответ

Решение

Единственное, что я вижу, это то, что $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
}
Другие вопросы по тегам