3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php class C implements ArrayAccess { public function offsetGet($offset) { return 'value'; } public function offsetExists($offset) { if ($offset == 'pWithNull') { return null; } if ($offset == 'pWithFalse') { return false; } if ($offset == 'pWithTrue') { return true; } return false; } public function offsetSet($offset, $value) { // nothing } public function offsetUnset($offset) { // nothing } } $o = new C(); var_dump( isset($o->pWithFalse), empty($o->pWithFalse) ); var_dump( isset($o->pWithNull), empty($o->pWithNull) ); var_dump( isset($o->pWithTrue), empty($o->pWithTrue) );
based on Okuv4
Output for 5.0.0 - 7.2.0
bool(false) bool(true) bool(false) bool(true) bool(false) bool(true)
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING, expecting '{' in /in/Z2Frh on line 3
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.4.1
Parse error: parse error, unexpected T_STRING, expecting '{' in /in/Z2Frh on line 3
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `'{'' in /in/Z2Frh on line 3
Process exited with code 255.