3v4l.org

run code in 300+ PHP versions simultaneously
<?php class bar { protected $baz = "1"; public function set( $val ) { $this->baz = $val; } public function get() { return $this->baz; } } class foo { private $bar; public function __construct( $bar ) { $this->bar = $bar; } public function __clone() { echo __METHOD__ . "\n"; $this->bar = clone $this->bar; } public function get() { return $this->bar; } } $bar = new bar(); $o1 = new foo( $bar ); $o2 = clone $o1; $o2->get()->set( "2" ); var_dump( $o1->get()->get() ); var_dump( $o2->get()->get() );

preferences:
42.2 ms | 402 KiB | 5 Q