3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php final class Mutable { private $x; public function __construct(int $x) { $this->x = $x; } public function setX(int $x): void { $this->x = $x; } public function x(): int { return $this->x; } } final class User { private $m; public function __construct(Mutable $m) { $this->m = $m; } public function x(): void { echo "{$this->m}\n"; } } $m = new Mutable(42); $u = new User($m); $u->x(); $m->setX(-1); $u->x();
Output for 7.1.0 - 7.2.6
Recoverable fatal error: Object of class Mutable could not be converted to string in /in/FLpRP on line 27
Process exited with code 255.
Output for 7.0.0 - 7.0.20
Catchable fatal error: Object of class Mutable could not be converted to string in /in/FLpRP on line 27
Process exited with code 255.
Output for hhvm-3.15.4
Fatal error: Uncaught Error: Object of class Mutable could not be converted to string in /in/FLpRP:27 Stack trace: #0 /in/FLpRP(34): User->x() #1 {main}
Process exited with code 255.
Output for 5.6.0 - 5.6.30
Parse error: syntax error, unexpected ':', expecting ';' or '{' in /in/FLpRP on line 10
Process exited with code 255.