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

function ($foo) {

    $bar = $this->otherFunction($foo);

    return $bar;
}

Вместо:

function ($foo) {

    return $this->otherFunction($foo); 

}

Я твердо уверен, что возвращение $ foo необходимо только в том случае, если вы начинаете или имеете несколько частей в вашем коде, где $ foo можно объявить и перезаписать, и вы убедитесь, что вы вернетесь в крайнем случае.

Я не могу найти по этому поводу удовлетворительного ответа.

php
0
Gislaved 21 Сен 2018 в 04:26

2 ответа

Лучший ответ

Между этими двумя стилями кода нет большой разницы ...

Если да, то в первом стиле нужно объявить переменную, а это пустая трата MEM, $ bar не требуется.

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

0
JWang 21 Сен 2018 в 01:54

Я постоянно этим занимаюсь по одной простой причине: отладка.

При использовании отладчика намного проще поставить точку останова на оператор возврата после , когда переменная, которую я хочу проанализировать, заполнена, потому что размещение ее в строке, где она заполнена, приведет к разрыву до того, как это случилось.

$bar = $this->otherFunction($foo);  //BREAK POINT HERE => $bar will be empty/not set
return $bar;                        //BREAK POINT HERE => $bar is filled and you can analyse it

Более того, если вы не используете отладчик, но вам все же необходимо проанализировать содержимое $bar, гораздо проще просто вставить эхо между этими операторами.

Другая причина - удобочитаемость. Особенно при работе с вложенными функциями гораздо легче понять код, если он не находится в одной строке.

0
Mid 21 Сен 2018 в 06:34