Код после оператора возврата в функции PHP - PullRequest
13 голосов
/ 25 июня 2011

Я работаю с / на крайне устаревшем сайте, на котором я бы не назвал свое имя. Кажется, что в существующем коде есть повторяющийся паттерн, который выглядит следующим образом:

function foo() {
    $a = 'a';
    $b = 'b';

    return;

    $c = 'c';
    $d = 'd';
}

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

Все, что я когда-либо изучал (за исключением вызова goto line), говорит мне, что код, следующий за оператором return, бесполезен. Это? Почему предыдущий программист сделал это?

Ответы [ 3 ]

18 голосов
/ 25 июня 2011

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

3 голосов
/ 25 июня 2011

Код под отчетом о возвращении бесполезен, он не будет выполнен.

1 голос
/ 25 июня 2011

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

Примером того, где это может быть, является ситуация, когда автор переписал код, чтобы реализовать его другим способом. Они поместили новую реализацию над оператором return, но оставили код под ним, чтобы он был там как «ссылка» на то, как это делалось раньше. Таким образом, если они понимают, что что-то не работает в новом коде, у них есть старый код, на который легко смотреть.

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

...