PHP7 — Можно ли доверять подсказке типа?

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

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

function addTwo(int $a, int $b): int {
return $a + $b;
}

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

2

Решение

Это зависит от условий. Например, в вашем примере перевод строк не удастся, но передача с плавающей точкой — без проблем, она будет молча преобразована в int.

Вы должны написать объявить (strict_types = 1);

strict_types = 1 может применяться только к файлу, который непосредственно объявляет его в первой строке, но никак не может обойти это.

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

Возвращаемые значения

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]