Недавно я начал изучать новый тип подсказок, который был введен в PHP 7, и обнаружил, что это действительно хорошее и полезное дополнение для добавления в некоторые из моих приложений, поэтому я пошел на это, однако у меня есть вопрос относительно аргумента и возвращаемый тип намека.
Скажем, у меня есть базовая функция, которая выполняет математику с двумя аргументами и возвращает целое число.
function addTwo(int $a, int $b): int {
return $a + $b;
}
Ожидаемые аргументы должны быть целыми числами, и мы должны надеяться получить целочисленное значение от функции, однако всегда ли это гарантировано или должна быть проведена дополнительная проверка в функции, такой как is_int, чтобы убедиться, что оба аргумента являются целыми числами?
Это зависит от условий. Например, в вашем примере перевод строк не удастся, но передача с плавающей точкой — без проблем, она будет молча преобразована в int.
Вы должны написать объявить (strict_types = 1);
strict_types = 1 может применяться только к файлу, который непосредственно объявляет его в первой строке, но никак не может обойти это.
Строгая типизация также влияет на объявления возвращаемых типов. в
слабый режим по умолчанию, возвращаемые значения будут приведены к правильному типу
если они еще не такого типа. В сильном режиме возвращается
значение должно быть правильного типа, в противном случае TypeError будет
выброшены.
Других решений пока нет …