Проверьте, возвращает ли функция PHP ноль или ничего

StackOverflow https://stackoverflow.com/questions/1809764

  •  05-07-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

Другие советы

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

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

С помощью функции объявления возвращаемого типа в PHP7:

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

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

function c(): void {
    return; // :)
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top