@ 2013-03-22T11:49:35Z <?php
const INT_SIGNED = 1;
const INT_LE = 2;
function isLittleEndian() {
return pack('S', 0x00FF) === "\xFF\x00";
}
function is32Bit() {
return PHP_INT_MAX < 0x80000000;
}
function unpack_int32($str, $flags = 0) {
$length = strlen($str);
if ($length < 4) {
return false;
} else if ($length > 4) {
$str = substr($str, 0, 4);
}
$format = ($flags & INT_LE) ? 'V' : 'N';
$result = unpack($format, $str);
if (($result & 0x80000000) && ($flags & INT_SIGNED) && !is32Bit()) {
$result = 0xFFFFFFFF00000000 | $result;
}
return $result;
}
var_dump(isLittleEndian(), is32Bit(), unpack_int32("\xFF\xFF\xFF\xFF", INT_SIGNED));
var_dump(isLittleEndian(), is32Bit());
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 8.0.0 - 8.0.30 , 8.1.0 - 8.1.28 , 8.2.0 - 8.2.18 , 8.3.0 - 8.3.7 Fatal error: Uncaught TypeError: Unsupported operand types: array & int in /in/pvNTs:24
Stack trace:
#0 /in/pvNTs(31): unpack_int32('\xFF\xFF\xFF\xFF', 1)
#1 {main}
thrown in /in/pvNTs on line 24
Process exited with code 255 . Output for 5.3.0 - 5.3.29 , 5.4.0 - 5.4.45 , 5.5.0 - 5.5.38 , 5.6.0 - 5.6.38 , 7.0.0 - 7.0.31 , 7.1.0 - 7.1.23 , 7.2.0 - 7.2.33 , 7.3.12 - 7.3.33 , 7.4.0 - 7.4.33 bool(true)
bool(false)
array(1) {
[1]=>
int(4294967295)
}
bool(true)
bool(false)
Output for 4.4.2 - 4.4.9 , 5.1.0 - 5.1.6 , 5.2.0 - 5.2.17 Parse error: syntax error, unexpected T_CONST in /in/pvNTs on line 3
Process exited with code 255 . Output for 4.3.0 - 4.3.1 , 4.3.5 - 4.3.11 , 4.4.0 - 4.4.1 , 5.0.0 - 5.0.5 Parse error: parse error, unexpected T_CONST in /in/pvNTs on line 3
Process exited with code 255 . Output for 4.3.2 - 4.3.4 Parse error: parse error in /in/pvNTs on line 3
Process exited with code 255 . preferences:dark mode live preview
266.3 ms | 401 KiB | 418 Q