PHP:将整数转换为int - 获取错误

wax*_*cal 5 php casting

据我所知,在PHP中int和integer之间没有太大差异.我一定是错的.

我将一个整数值传递给一个只在此值上有int的函数.像这样: -

$new->setPersonId((int)$newPersonId); // Have tried casting with (int) and intval and both
Run Code Online (Sandbox Code Playgroud)

我有另一面: -

    public function setPersonId(int $value) {
        // foobar
    }
Run Code Online (Sandbox Code Playgroud)

现在,当我跑步时 - 我收到消息: -

"PHP Catchable致命错误:传递给setPersonId()的参数1必须是int的实例,给定的整数"

我已尝试使用(int)和intval()调用.

有任何想法吗?

fin*_*1te 14

PHP中的类型提示仅适用于对象而不适用于标量,因此PHP期望您传递"int"类型的对象.

您可以使用以下方法作为解决方法

public function setPersonId($value) {
    if (!is_int($value)) {
        // Handle error
    }
}
Run Code Online (Sandbox Code Playgroud)