3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php /** * Which one is greatest? */ error_reporting(E_ALL ^ E_NOTICES); $inf = INF; $array = array(); $object = (object) $array; $InfGreaterThanArray = ($inf > $array); $InfGreaterThanObject = ($inf > $object); $arrayGreaterThanInf = ($array > $inf); $arrayGreaterThanObject = ($array > $object); $objectGreaterThanInf = ($object > $inf); $objectGreaterThanArray = ($object > array()); // Test1: Is INF greatest? # boolean(false) echo 'Inf is Greatest:', var_dump($InfIsGreatest = $InfGreaterThanObject and $InfGreaterThanArray); // Test2: Is Array greatest? # boolean(false) echo 'Array is Greatest:', var_dump($arrayIsGreatest = $arrayGreaterThanInf and $arrayGreaterThanObject); // Test3: Is Object greatest? # boolean(false) echo 'Object is Greatest:', var_dump($objectIsGreatest = $objectGreaterThanInf and $objectGreaterThanArray); // Test4: Undefined? # boolean(true) echo 'Undefined:', var_dump( $undefined = ( ($InfIsGreatest and $InfIsGreatest == $arrayIsGreatest) || ($arrayIsGreatest and $arrayIsGreatest == $objectIsGreatest) || (!$InfIsGreatest and $InfIsGreatest == $arrayIsGreatest and $InfIsGreatest == $objectIsGreatest) ) );
Output for 7.1.0
Notice: Use of undefined constant E_NOTICES - assumed 'E_NOTICES' in /in/2eAAR on line 6 Warning: A non-numeric value encountered in /in/2eAAR on line 6 Notice: Object of class stdClass could not be converted to float in /in/2eAAR on line 13 Notice: Object of class stdClass could not be converted to float in /in/2eAAR on line 18 Inf is Greatest:bool(false) Array is Greatest:bool(false) Object is Greatest:bool(false) Undefined:bool(true)
Output for 7.0.0 - 7.0.14
Notice: Use of undefined constant E_NOTICES - assumed 'E_NOTICES' in /in/2eAAR on line 6 Notice: Object of class stdClass could not be converted to float in /in/2eAAR on line 13 Notice: Object of class stdClass could not be converted to float in /in/2eAAR on line 18 Inf is Greatest:bool(false) Array is Greatest:bool(false) Object is Greatest:bool(false) Undefined:bool(true)
Output for 5.2.0 - 5.6.28
Notice: Use of undefined constant E_NOTICES - assumed 'E_NOTICES' in /in/2eAAR on line 6 Notice: Object of class stdClass could not be converted to double in /in/2eAAR on line 13 Notice: Object of class stdClass could not be converted to double in /in/2eAAR on line 18 Inf is Greatest:bool(false) Array is Greatest:bool(false) Object is Greatest:bool(false) Undefined:bool(true)
Output for 5.1.0 - 5.1.6
Notice: Use of undefined constant E_NOTICES - assumed 'E_NOTICES' in /in/2eAAR on line 6 Notice: Object of class stdClass could not be converted to int in /in/2eAAR on line 13 Notice: Object of class stdClass could not be converted to int in /in/2eAAR on line 16 Notice: Object of class stdClass could not be converted to int in /in/2eAAR on line 18 Notice: Object of class stdClass could not be converted to int in /in/2eAAR on line 19 Inf is Greatest:bool(false) Array is Greatest:bool(true) Object is Greatest:bool(false) Undefined:bool(true)
Output for 4.3.6 - 5.0.5
Notice: Use of undefined constant E_NOTICES - assumed 'E_NOTICES' in /in/2eAAR on line 6 Inf is Greatest:bool(false) Array is Greatest:bool(true) Object is Greatest:bool(false) Undefined:bool(true)
Output for 4.3.0 - 4.3.5
Notice: Use of undefined constant E_NOTICES - assumed 'E_NOTICES' in /in/2eAAR on line 6 Notice: Use of undefined constant INF - assumed 'INF' in /in/2eAAR on line 8 Inf is Greatest:bool(false) Array is Greatest:bool(true) Object is Greatest:bool(false) Undefined:bool(true)