3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Header { public function __construct() { $this->project = get_prior_object(); $this->modules = get_prior_object(1); } } class Modules { public function __construct() { $this->project = get_prior_object(); $this->header = new Header(); } } class Project { public $config = "config"; public function __construct() { $this->modules = new Modules(); } } $p = new Project(); var_dump($p->modules); function get_prior_object($skip = 0) { $bt = debug_backtrace(); foreach ($bt as $stack) { if (isset($stack['function']) && stack['function'] === "__construct" && $skip-- <= 0) { return $stack['object']; } } return null; }

preferences:
34.93 ms | 402 KiB | 5 Q