Добро пожаловать, Гость!
PHP7: Строгая типизация
Коды/Сниппеты | PHP7: Строгая типизация
Mod
:
В PHP 7 нам предоставлена возможность указывать типы аргументов ф-ции и тип значения возвращаемого функцией, методом или замыканием.
По умолчанию (при нестрогой типизации), PHP будет пытаться привести значения несоответствующих типов к скалярному типу, если это возможно. Например, если в функцию передается integer, а тип аргумента объявлен string, в итоге функция получит преобразованное string значение.
Но вы можете включить строгий контроль за передаваемыми типами значений с помощью конструкции:
declare(strict_types=1);
Примечание
Включение режима строгой типизации также повлияет на объявления типов возвращаемых значений - при строгой типизации возвращаемое значение должно быть заданного типа, иначе будет выброшено исключение TypeError.
Внимание!
Строгая типизация применима только к скалярным типам и работает только в PHP 7.0 и выше. Также как и сами объявления скалярных типов добавлены в этой версии.
Режим строгой типизации распространяется на вызовы функций совершенные из файла, в котором этот режим включен, а не на функции, которые в этом файле объявлены. Если файл без строгой типизации вызывает функцию, которая объявлена в файле с включенным режимом, значения аргументов будут приведены к нужным типам и ошибок не последует.
Доступные типы значений в PHP 7:
string;
int;
float;
bool;
array;
callable;
Closure;
Доступные только методов типы возвращаемых значений:
self;
parent;
<имя класса>;
<имя интерфейса>;
Примечание
Если вы хотите указать, что значением аргумента по умолчанию является NULL - нужно объявить тип NULL.
Синтаксис указания возвращаемого типа значения:
function someFn(array ...$arrays): array {
return array_map(function(array $array): int {
return array_sum($array);
}, $arrays);
}
PHP7: Строгая типизация
7 Окт 2020В PHP 7 нам предоставлена возможность указывать типы аргументов ф-ции и тип значения возвращаемого функцией, методом или замыканием.
По умолчанию (при нестрогой типизации), PHP будет пытаться привести значения несоответствующих типов к скалярному типу, если это возможно. Например, если в функцию передается integer, а тип аргумента объявлен string, в итоге функция получит преобразованное string значение.
Но вы можете включить строгий контроль за передаваемыми типами значений с помощью конструкции:
declare(strict_types=1);
Примечание
Включение режима строгой типизации также повлияет на объявления типов возвращаемых значений - при строгой типизации возвращаемое значение должно быть заданного типа, иначе будет выброшено исключение TypeError.
Внимание!
Строгая типизация применима только к скалярным типам и работает только в PHP 7.0 и выше. Также как и сами объявления скалярных типов добавлены в этой версии.
Режим строгой типизации распространяется на вызовы функций совершенные из файла, в котором этот режим включен, а не на функции, которые в этом файле объявлены. Если файл без строгой типизации вызывает функцию, которая объявлена в файле с включенным режимом, значения аргументов будут приведены к нужным типам и ошибок не последует.
Доступные типы значений в PHP 7:
string;
int;
float;
bool;
array;
callable;
Closure;
Доступные только методов типы возвращаемых значений:
self;
parent;
<имя класса>;
<имя интерфейса>;
Примечание
Если вы хотите указать, что значением аргумента по умолчанию является NULL - нужно объявить тип NULL.
Синтаксис указания возвращаемого типа значения:
function someFn(array ...$arrays): array {
return array_map(function(array $array): int {
return array_sum($array);
}, $arrays);
}
Комментарии:
Нет сообщений в теме