3v4l.org

run code in 300+ PHP versions simultaneously
<?php $file = new SplTempFileObject(); for ($i = 0; $i < 100; $i++) { $file->fwrite("Foo $i\n"); } $file->rewind(); $nextBefore = []; while ($file->valid() && $file->key() <= 3) { $file->next(); $line = $file->current(); $nextBefore[$file->key()] = trim($line); } $file->rewind(); $nextAfter = []; while ($file->valid() && $file->key() <= 3) { $line = $file->current(); $nextAfter[$file->key()] = trim($line); $file->next(); } $file->rewind(); $fgets = []; while ($file->valid() && $file->key() <= 3) { $line = $file->fgets(); $fgets[$file->key()] = trim($line); } echo "-- Next Before --\n"; print_r($nextBefore) . PHP_EOL; echo "-- Next After --\n"; print_r($nextAfter) . PHP_EOL; echo "-- fgets --\n"; print_r($fgets) . PHP_EOL;
Output for 8.0.19 - 8.0.30, 8.1.6 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.4, 8.3.6 - 8.3.28, 8.4.1 - 8.4.14, 8.5.0 - 8.5.1
-- Next Before -- Array ( [1] => Foo 0 [2] => Foo 1 [3] => Foo 2 [4] => Foo 3 ) -- Next After -- Array ( [0] => Foo 0 [1] => Foo 1 [2] => Foo 2 [3] => Foo 3 ) -- fgets -- Array ( [1] => Foo 0 [2] => Foo 1 [3] => Foo 2 [4] => Foo 3 )
Output for 8.4.15
/bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.35' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15)
Process exited with code 1.
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 -- Next Before -- Array ( [1] => Foo 0 [2] => Foo 1 [3] => Foo 2 [4] => Foo 3 ) -- Next After -- Array ( [0] => Foo 0 [1] => Foo 1 [2] => Foo 2 [3] => Foo 3 ) -- fgets -- Array ( [1] => Foo 0 [2] => Foo 1 [3] => Foo 2 [4] => Foo 3 )
Output for 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.18, 8.1.0 - 8.1.5
-- Next Before -- Array ( [1] => Foo 0 [2] => Foo 1 [3] => Foo 2 [4] => Foo 3 ) -- Next After -- Array ( [0] => Foo 0 [1] => Foo 1 [2] => Foo 2 [3] => Foo 3 ) -- fgets -- Array ( [0] => Foo 0 [1] => Foo 1 [2] => Foo 2 [3] => Foo 3 [4] => Foo 4 )

preferences:
194.53 ms | 412 KiB | 5 Q