3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php class string { protected $string = null; public function __construct($string) { $this->string=(string)$string; } public function __toString() { return $this->string; } } //YES!! string type-hinting ! :p function test(string $var) { return strrev($var); } echo (new string('foo')).(new string('bar')).PHP_EOL; echo substr(new string('foobar'), 3, 2).PHP_EOL; var_dump(explode(new string(':'), new string('foo:bar'))); echo test(new string('foobarbaz')).PHP_EOL; echo test("pure string"); //fatal
Output for hhvm-3.10.0

Process exited with code 153.
Output for 5.2.0 - 5.4.23
foobar ba array(2) { [0]=> string(3) "foo" [1]=> string(3) "bar" } zabraboof Catchable fatal error: Argument 1 passed to test() must be an instance of string, string given, called in /in/clSQg on line 26 and defined in /in/clSQg on line 17
Process exited with code 255.
Output for 5.1.1 - 5.1.6
Object id #1Object id #2 Notice: Object of class string to string conversion in /in/clSQg on line 23 ec Notice: Object of class string to string conversion in /in/clSQg on line 24 Notice: Object of class string to string conversion in /in/clSQg on line 24 array(2) { [0]=> string(0) "" [1]=> string(0) "" } Notice: Object of class string to string conversion in /in/clSQg on line 19 tcejbO Fatal error: Argument 1 passed to test() must be an object of class string, called in /in/clSQg on line 26 and defined in /in/clSQg on line 17
Process exited with code 255.
Output for 5.1.0
Fatal error: fatal flex scanner internal error--end of buffer missed in /in/clSQg on line 26
Process exited with code 255.
Output for 5.0.2 - 5.0.5
Object id #1Object id #2 Notice: Object of class string to string conversion in /in/clSQg on line 23 ec Notice: Object of class string to string conversion in /in/clSQg on line 24 Notice: Object of class string to string conversion in /in/clSQg on line 24 array(2) { [0]=> string(0) "" [1]=> string(0) "" } Notice: Object of class string to string conversion in /in/clSQg on line 19 tcejbO Fatal error: Argument 1 must be an object of class string in /in/clSQg on line 17
Process exited with code 255.
Output for 5.0.0 - 5.0.1
Notice: Use of undefined constant PHP_EOL - assumed 'PHP_EOL' in /in/clSQg on line 22 Object id #1Object id #2PHP_EOL Notice: Object of class string to string conversion in /in/clSQg on line 23 Notice: Use of undefined constant PHP_EOL - assumed 'PHP_EOL' in /in/clSQg on line 23 ecPHP_EOL Notice: Object of class string to string conversion in /in/clSQg on line 24 Notice: Object of class string to string conversion in /in/clSQg on line 24 array(2) { [0]=> string(0) "" [1]=> string(0) "" } Notice: Object of class string to string conversion in /in/clSQg on line 19 Notice: Use of undefined constant PHP_EOL - assumed 'PHP_EOL' in /in/clSQg on line 25 tcejbOPHP_EOL Fatal error: Argument 1 must be an object of class string in /in/clSQg on line 17
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/clSQg on line 4
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 T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/clSQg on line 4
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/clSQg on line 4
Process exited with code 255.