3v4l.org

run code in 300+ PHP versions simultaneously
<?php class dumpy { function __construct() { echo 'constructor called,' . PHP_EOL . ' my class is ' . var_export(get_class($this), true) . PHP_EOL . ' input parameters: ' . var_export(func_get_args(), true) . PHP_EOL; } function __set($name, $value) { echo var_export($name, true) . ' = ' . var_export($value, true) . PHP_EOL; } } class dummy extends dumpy { } $dsn = 'sqlite::memory:'; $pdo = method_exists('PDO', 'connect') ? PDO::connect($dsn) : new PDO($dsn); $sql = "SELECT 'dummy' pdoFetchClassTypeClass, 'bar' foo, 'dfg' abc;"; foreach (array( array('PDO::FETCH_CLASS'), array('PDO::FETCH_CLASS', 'PDO::FETCH_PROPS_LATE'), array('PDO::FETCH_CLASS', 'PDO::FETCH_CLASSTYPE'), array('PDO::FETCH_CLASS', 'PDO::FETCH_CLASSTYPE', 'PDO::FETCH_PROPS_LATE'), ) as $fetchMode) { $fetchModeInt = 0; foreach (array_map('constant', $fetchMode) as $i) { $fetchModeInt |= $i; } echo '## ' . implode(' | ' , $fetchMode) . " ($fetchModeInt)" . PHP_EOL; $pdo->query($sql)->fetchAll( $fetchModeInt, 'dumpy', array('constructor argument #1') ); echo PHP_EOL; }
Output for 8.5.0
## PDO::FETCH_CLASS (8) 'pdoFetchClassTypeClass' = 'dummy' 'foo' = 'bar' 'abc' = 'dfg' constructor called, my class is 'dumpy' input parameters: array ( 0 => 'constructor argument #1', ) ## PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE (264) constructor called, my class is 'dumpy' input parameters: array ( 0 => 'constructor argument #1', ) 'pdoFetchClassTypeClass' = 'dummy' 'foo' = 'bar' 'abc' = 'dfg' ## PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE (136) 'foo' = 'bar' 'abc' = 'dfg' constructor called, my class is 'dummy' input parameters: array ( ) ## PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE | PDO::FETCH_PROPS_LATE (392) constructor called, my class is 'dummy' input parameters: array ( ) 'foo' = 'bar' 'abc' = 'dfg'
Output for 5.2.0 - 5.2.11, 5.2.14 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.34, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.28, 8.4.1 - 8.4.15
## PDO::FETCH_CLASS (8) 'pdoFetchClassTypeClass' = 'dummy' 'foo' = 'bar' 'abc' = 'dfg' constructor called, my class is 'dumpy' input parameters: array ( 0 => 'constructor argument #1', ) ## PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE (1048584) constructor called, my class is 'dumpy' input parameters: array ( 0 => 'constructor argument #1', ) 'pdoFetchClassTypeClass' = 'dummy' 'foo' = 'bar' 'abc' = 'dfg' ## PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE (262152) 'foo' = 'bar' 'abc' = 'dfg' constructor called, my class is 'dummy' input parameters: array ( 0 => 'constructor argument #1', ) ## PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE | PDO::FETCH_PROPS_LATE (1310728) constructor called, my class is 'dummy' input parameters: array ( 0 => 'constructor argument #1', ) 'foo' = 'bar' 'abc' = 'dfg'
Output for 5.2.12 - 5.2.13
## PDO::FETCH_CLASS (8) constructor called, my class is 'dumpy' input parameters: array ( 0 => 'constructor argument #1', ) 'pdoFetchClassTypeClass' = 'dummy' 'foo' = 'bar' 'abc' = 'dfg' ## PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE (1048584) constructor called, my class is 'dumpy' input parameters: array ( 0 => 'constructor argument #1', ) 'pdoFetchClassTypeClass' = 'dummy' 'foo' = 'bar' 'abc' = 'dfg' ## PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE (262152) constructor called, my class is 'dummy' input parameters: array ( 0 => 'constructor argument #1', ) 'foo' = 'bar' 'abc' = 'dfg' ## PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE | PDO::FETCH_PROPS_LATE (1310728) constructor called, my class is 'dummy' input parameters: array ( 0 => 'constructor argument #1', ) 'foo' = 'bar' 'abc' = 'dfg'
Output for 5.1.4 - 5.1.6
Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in /in/4flGD:18 Stack trace: #0 /in/4flGD(18): PDO->__construct('sqlite::memory:') #1 {main} thrown in /in/4flGD on line 18
Process exited with code 255.
Output for 5.1.0 - 5.1.3
## PDO::FETCH_CLASS (8) 'pdoFetchClassTypeClass' = 'dummy' 'foo' = 'bar' 'abc' = 'dfg' constructor called, my class is 'dumpy' input parameters: array ( 0 => 'constructor argument #1', ) Warning: constant(): Couldn't find constant PDO::FETCH_PROPS_LATE in /in/4flGD on line 28 ## PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE (8) 'pdoFetchClassTypeClass' = 'dummy' 'foo' = 'bar' 'abc' = 'dfg' constructor called, my class is 'dumpy' input parameters: array ( 0 => 'constructor argument #1', ) ## PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE (262152) 'foo' = 'bar' 'abc' = 'dfg' constructor called, my class is 'dummy' input parameters: array ( 0 => 'constructor argument #1', ) Warning: constant(): Couldn't find constant PDO::FETCH_PROPS_LATE in /in/4flGD on line 28 ## PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE | PDO::FETCH_PROPS_LATE (262152) 'foo' = 'bar' 'abc' = 'dfg' constructor called, my class is 'dummy' input parameters: array ( 0 => 'constructor argument #1', )
Output for 5.0.0 - 5.0.5
Fatal error: Class 'PDO' not found in /in/4flGD on line 18
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_OBJECT_OPERATOR in /in/4flGD on line 32
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
Parse error: parse error, unexpected T_OBJECT_OPERATOR in /in/4flGD on line 32
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error in /in/4flGD on line 32
Process exited with code 255.

preferences:
148.95 ms | 420 KiB | 5 Q