3v4l.org

run code in 300+ PHP versions simultaneously
<?php error_reporting(E_ALL); $db = new PDO("sqlite::memory:"); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $expectedFetchMode = \PDO::FETCH_OBJ; $db->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, $expectedFetchMode); print "Original (expected):\n"; $stmt = $db->query("SELECT 'v1' AS c1, 'v2' AS c2"); print_r($stmt->fetch()); print "\nPDOStatement::setFetchMode:\n"; $stmt = $db->query("SELECT 'v1' AS c1, 'v2' AS c2"); $stmt->setFetchMode(\PDO::FETCH_DEFAULT); print_r($stmt->fetch()); print "\nPDOStatement::fetch:\n"; $stmt = $db->query("SELECT 'v1' AS c1, 'v2' AS c2"); print_r($stmt->fetch(\PDO::FETCH_DEFAULT)); print "\nPDOStatement::fetchAll:\n"; $stmt = $db->query("SELECT 'v1' AS c1, 'v2' AS c2"); print_r($stmt->fetchAll(\PDO::FETCH_DEFAULT)); print "\nPDO::setAttribute:\n"; try { $db->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_DEFAULT); } catch (ValueError $e) { print "Could not set fetch mode using PDO::setAttribute: ". $e->getMessage() ."\n"; } if ($db->getAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE) !== $expectedFetchMode) { print __LINE__ ." Fetch mode changed\n"; } print "Done!\n";

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
8.5.30.0090.00918.83
8.5.20.0060.00220.98
8.5.10.0110.00717.64
8.5.00.0110.00923.78
8.4.180.0080.01422.88
8.4.170.0120.00824.64
8.4.160.0120.01024.57
8.4.150.0010.00114.05
8.4.140.0110.01018.42
8.4.130.0160.01020.21
8.4.120.0220.01118.44
8.4.90.0130.00818.79
8.3.300.0070.00319.94
8.3.290.0070.01319.39
8.3.280.0110.00919.41
8.3.270.0130.00717.36
8.3.260.0120.01317.27
8.3.250.0090.01017.65
8.3.180.0030.00517.63
8.3.50.0110.00917.47
8.2.300.0140.00818.86
8.1.340.0100.01118.53

preferences:
51.66 ms | 598 KiB | 5 Q