PHP объявление типа поставляется с принудительным режимом в качестве режима по умолчанию, поэтому можно изменить объявленный тип, и TypeError
не будет выброшено, только если PHP может привести значения неправильного типа к ожидаемому из них.
Теперь предположим, что у нас есть функция, которая принимает в качестве аргумента только целые числа, поэтому, когда пользователь передает число с плавающей запятой, он неявно преобразуется в целочисленный тип. Есть ли какой-либо возможный способ обнаружить из этой функции, что пользователь ввел float, не пропустив объявленный тип данных?
function doSomething(int $number) {
var_dump($number); // want something like int(5), user entered float(5.5)
}
doSomething(5.5)
Редактировать
Возможное решение приходит на ум, это
function doSomething(int $number) {
var_dump($GLOBALS['num']);
}
$num = 5.5;
doSomething($num)
Но мне это не нравится