PHP 8 ТИПИЗАЦИЯ
PHP 8 обогатил свой функционал новыми полезными возможностями, среди которых важное место занимает типизация. Большинство разработчиков привыкли к PHP с динамической типизацией, что иногда приводило к неожиданным результатам работы кода. Теперь с появлением строгой типизации в PHP 8 можно сэкономить много времени на отладке.
PHP 8 поддерживает два типа типизации: строгую и широкую. Строгая типизация требует, чтобы переменные были объявлены с явным указанием типа, а широкая допускает неявное приведение типов в случае несоответствия. Чтобы включить строгую типизацию в PHP 8, необходимо указать соответствующий оператор в начале файла:
declare(strict_types=1);
После этого все функции и методы, объявленные в этом файле, будут работать со строгой типизацией. Например, если объявить функцию с явным указанием типа аргумента и результата:
function sum(int $a, int $b): int
{
return $a + $b;
}
То PHP 8 будет строго проверять типы входных значений и тип результата:
sum(2, 3); // результатом будет 5
sum('2', '3'); // ошибка, так как значения не соответствуют типу int
Также в PHP 8 можно указывать тип для свойств классов:
class MyClass
{
private int $myProperty;
}
Или для переменных в глобальной области видимости:
global $myVariable;
$myVariable = 4;
var_dump($myVariable); // результатом будет int(4)
Для более удобной работы с типизацией в PHP 8 появилась новая функция get_debug_type(), которая возвращает строго типизированный результат типа переменной:
$myString = "123";
var_dump(get_debug_type($myString)); // результатом будет string(3)
Covariance \u0026 Contravariance in PHP - Full PHP 8 Tutorial
PHP Iterators \u0026 Iterable Type - Iterate Over Objects - Full PHP 8 Tutorial
PHP Traits - How They Work \u0026 Drawbacks - Full PHP 8 Tutorial
Avoid These 5 Common Mistakes As A PHP Developer
Типизация в PHP
PHP's Evolution and PHP 8 Explained.