- debug_backtrace: documentation ( source)
- hrtime: documentation ( source)
- printf: documentation ( source)
<?php
class Test
{
public function isOk()
{
return $this->log(true, __FUNCTION__);
}
public function isFalse()
{
return $this->log(false);
}
private function log(mixed $result, string $methodName = null)
{
if (!isset($methodName)) {
$methodName = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2)[1]["function"];
}
//echo $methodName, "\n";
}
}
$c = new Test;
for($t=hrtime(true),$i=0;$i<1e6;++$i)
$c->isOk();
printf("magic const: %.3fms\n", (hrtime(true)-$t)/1000_000);
for($t=hrtime(true),$i=0;$i<1e6;++$i)
$c->isFalse();
printf("debug trace: %.3fms\n", (hrtime(true)-$t)/1000_000);