Возвращаемые значения и исключения для функций PHP - PullRequest
4 голосов
/ 26 июня 2010

Я читаю некоторые книги по PHP (в частности, "Welling and Thomson", "Разработка PHP и MySQL"), а также я начинающий студент.Мне было немного любопытно, почему автор решил выбрать два разных способа прекратить выполнение функции, например

if (!$result) {
    throw new Exception('Password could not be changed.');
} else {
    return true;
}

Для меня это кажется немного противоречивым, и было бы больше смысла возвращать false ипусть вызывающий абонент проверит возвращаемое значение вызываемого и справится с ним.Является ли обычным для кода PHP быть таким?Этот тип стиля ожидается при использовании исключений?

Ответы [ 3 ]

3 голосов
/ 26 июня 2010

Да, я согласен, что в этом нет особого смысла. Либо сигнализируйте об ошибках через возвращаемое значение, либо с исключением. Если возвращаемое значение всегда равно true (при ошибке возникает исключение), вы также можете ничего не возвращать (что в PHP эквивалентно возвращению NULL).

2 голосов
/ 26 июня 2010

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

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

1 голос
/ 26 июня 2010

В большинстве случаев, когда вы видите PHP-код, все дело в человеке, который его кодировал, и в его особом стиле.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...