- var_dump: documentation ( source)
- debug_backtrace: documentation ( source)
<?php
function get_caller(): ?object
{
foreach (debug_backtrace() as $call) {
if (isset($call['object'])) {
return $call['object'];
}
}
return null;
}
function foo(): void
{
var_dump(get_caller());
}
class Bar
{
public function __construct()
{
var_dump(get_caller());
new Baz();
}
}
class Baz
{
public function __construct()
{
foo();
}
}
foo();
new Bar();