3v4l.org

run code in 300+ PHP versions simultaneously
<?php declare(strict_types = 1); function readUnsignedVarLong(string $buffer, int &$offset) : int{ $value = 0; for($i = 0; $i <= 63; $i += 7){ if(!isset($buffer[$offset])){ throw new Exception("No bytes left in buffer"); } $b = ord($buffer[$offset++]); $value |= (($b & 0x7f) << $i); if(($b & 0x80) === 0){ return $value; } } throw new Exception("VarLong did not terminate after 10 bytes!"); } $a = 0; var_dump(readUnsignedVarLong(str_repeat(chr(255), 9) . chr(0x80 << 1), $a), PHP_INT_MAX);

preferences:
45.26 ms | 402 KiB | 5 Q