php – Implicit conversion from float 2.3283064365386963E-10 to int loses precision

I am using php 8.2 on windows on the following code:

    private static function urs($a, $b) {   
        $a &= 0xffffffff;
        $b &= 0x1f;
        if ($a&0x80000000 && $b>0){
            $a = ($a>>1) & 0x7fffffff;
            $a = $a >> ($b-1);
        } else {
            $a = ($a>>$b);
        }
        return $a; 
    }


$a &= 0xffffffff; <- this line giving error

Implicit conversion from float 2.3283064365386963E-10 to int loses precision

earlier on 5.4 the same function doesn’t given any error