Как «вернуть ложь» и отправить с ней сообщение? - PullRequest
4 голосов
/ 07 ноября 2011

Есть ли в PHP какой-либо вариант "вернуть false" из функции и отправить соответствующее сообщение с этим (как в случае с ошибкой)?

Является ли исключение лучшим способом для достижения этой цели?

Ответы [ 4 ]

3 голосов
/ 07 ноября 2011

выбрасывать исключение всегда хорошо, но оно буквально не равно return false
но если ваша логика способна выдержать исключение, все в порядке. Может быть некоторого отличного типа, не общего Exception хотя

1 голос
/ 07 ноября 2011

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

function foo($a = null) {
     if(!$a) {
         throw new Exception('$a must be defined');
     }
}

try {
    $var = foo();
} catch(Exception $e) {
    $var = false;
    echo $e->getMessage();
}

Таким образом, вы можете делать все что угодно, когда что-то идет не так.

0 голосов
/ 07 ноября 2011
function bla(){
   return false;
}
if(bla() === false){
    echo "Failed";
}

Но я считаю, что исключения лучше.

0 голосов
/ 07 ноября 2011

Вы можете изменить свою функцию, чтобы она возвращала true или false в случае успеха или неудачи и возвращала вашу переменную в параметре, переданном по ссылке.

Т.е. изменение:

function foo()
{
   return true;
}

до

function foo(&$ret)
{
   if ( $something_went_wrong)
      return false;
   $ret = true;
   return true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...