Как называется этот тип функции в PHP - PullRequest
2 голосов
/ 24 мая 2019

Обычно я вижу такой тип функций в классах, когда я исследую код нескольких пакетов laravel, я хочу знать, как называется этот тип функций и как его использовать, например:

protected function getFiles(): Filesystem
{

}

или

protected function getConfigPath(): string
{

}

Будет полезна ссылка на документацию PHP.

1 Ответ

2 голосов
/ 30 мая 2019

Объявления типа возврата были добавлены в PHP 7.

Аналогично объявлениям типа аргумента, объявлениям типа возврата определить тип значения, которое будет возвращено функцией. Доступные типы такие же, как и для объявлений типов аргументов .

<?php
function sum($a, $b): float {
    return $a + $b;
}

Начиная с PHP 7.1.0, возвращаемые значения могут быть помечены как обнуляемые при помощи префикса имя типа со знаком вопроса (?).

?string ?int ?array ?bool ?float 

Это позволяет функции возвращать определенный тип или ноль, все остальное выдает TypeError , если используется Строгий режим , по умолчанию.

Директива strict_types может быть задана глобально или переключена в коде с использованием конструкции declare.

declare(strict_types=1);

Одним из основных преимуществ использования этих функций в PHP является более четкий код. Нет никакой двусмысленности относительно функций ввода и вывода. Это также помогает обнаруживать глупые ошибки, такие как сравнение значения строки и целочисленного типа - или, скорее, выполнять эти оценки более предсказуемым образом.

Вот еще несколько обсуждений на эту тему:

...