- var_dump: documentation ( source)
- debug_backtrace: documentation ( source)
<?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;
}