3v4l.org

run code in 300+ PHP versions simultaneously
<?php function roundup(int $v, int $p2): int { /* purely bitwise way to round up */ return ($v + $p2 - 1) & ~($p2 - 1); } function foreach_chunk(string $s, int $chunk, callable $func): void { /* make sure the chunk length is a power of 2 */ assert($chunk & ($chunk - 1) === 0); /* iterate over each chunk and call the callback */ array_walk(str_split(str_pad($s, roundup(strlen($s), $chunk), '0', STR_PAD_LEFT), $chunk), $func); } function bytesToBits(string $bytestring) { $bitstring = ''; foreach_chunk($bytestring, 4, function (string $chunk) use (&$bitstring) { $bitstring .= str_pad(base_convert(unpack('H*', $chunk)[1], 16, 2), strlen($chunk) * 8, '0', STR_PAD_LEFT); }); return $bitstring; } function bitsToBytes(string $bitstring) { $bytestring = ''; foreach_chunk($bitstring, 32, function(string $chunk) use (&$bytestring) { $bytestring .= pack('H*', str_pad(base_convert($chunk, 2, 16), strlen($chunk) / 8, '0', STR_PAD_LEFT)); }); return $bytestring; }
Output for 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Output for 5.6.0 - 5.6.40
Parse error: syntax error, unexpected ':', expecting '{' in /in/nlqTP on line 3
Process exited with code 255.

preferences:
222.76 ms | 401 KiB | 291 Q