Как получить исходный тип данных аргумента до его неявного преобразования - PullRequest
1 голос
/ 03 февраля 2020

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)

Но мне это не нравится

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...