С момента выхода PHP7 они ввели Объявления типов возврата в PHP.
Вы определяете тип возврата, добавляя : type
при определении функции:
public function foo() : array
{
return array();
}
Слабый режим по умолчанию
По умолчанию PHP использует слабый режим. Документация объясняет это следующим образом:
В слабом режиме по умолчанию возвращаемые значения будут приводиться к правильному типу, если они еще не относятся к этому типу
Например, см. Следующий пример, где функция возвращает string
, хотя определенный тип возвращаемого значения int
function myInt() : int {
return "1";
}
echo gettype(myInt());
// Output is "integer"
Сильный / Строгий режим
Вы также можете указать PHP вводить строгий / строгий режим при обработке возвращаемых типов, установив declare(strict_types=1)
. Это означает, что PHP выдаст TypeError
, если функция вернет неправильный тип. Документация PHP объясняет это следующим образом:
В сильном режиме возвращаемое значение должно быть правильного типа, в противном случае выдается ошибка TypeError.
declare(strict_types=1);
function myInt() : int {
return "1";
}
echo gettype(myInt());
// Throws an TypeError