Проверьте, возвращает ли функция PHP ноль или ничего - PullRequest
12 голосов
/ 27 ноября 2009

У меня есть этот код

 $return = $ep->$method($params);
 if ($return === null) {
  throw new Exception('Endpoint has no return value');
 }
 return $return;

Есть ли способ отличить метод, который возвращает null, от метода, который ничего не возвращает?

Ответы [ 4 ]

32 голосов
/ 27 ноября 2009

Это невозможно. Если возвращаемое значение не установлено, функция автоматически возвращает ноль.

1 голос
/ 29 декабря 2010

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

0 голосов
/ 13 августа 2017

С функцией объявления типа возврата PHP7:

function a(): void {
    return null; // :(
}

function b(): void {
    // :)
}

function c(): void {
    return; // :)
}
0 голосов
/ 27 ноября 2009

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

...