3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Hi { protected $message = 'Hello'; public function setMessage(string $message) { $this->message = $message; } public function sayHello() : string { return $this->message; } } class CopyCat extends Hi { public function __construct(Hi $realThing) // should be a named constructor instead { $this->message = & $realThing->message; } public function sayHello() : string { return 'Meow! ' . $this->message; } } $hi = new Hi; $hi->setMessage('Hello'); $copyCat = new CopyCat($hi); var_dump($hi->sayHello()); var_dump($copyCat->sayHello()); $hi->setMessage('Hi'); var_dump($hi->sayHello()); var_dump($copyCat->sayHello());

preferences:
70.76 ms | 1825 KiB | 5 Q