note 108967 deleted from function.get-called-class by danbrown

From: Date: Fri, 08 Jun 2012 20:17:52 +0000
Subject: note 108967 deleted from function.get-called-class by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-188491@lists.php.net to get a copy of this message
Note Submitter: dsaa at dubli dot com ---- This is the last version of the version < 5.3 workaround <?php /** * Gets the name of the class that made a static call * (Mimicks the get_called_class function in PHP 5.3) * @param string $functionName * @return string */ function callerName($functionName=null) { $btArray = debug_backtrace(); $btIndex = count($btArray) - 1; while($btIndex > -1) { if(!isset($btArray[$btIndex]['file'])) { $btIndex--; if(isset($matches[1])) { if(class_exists($matches[1])) { return $matches[1]; } else { continue; } } else { continue; } } else { $lines = file($btArray[$btIndex]['file']); $callerLine = $lines[$btArray[$btIndex]['line']-1]; if(!isset($functionName)) { preg_match('/([a-zA-Z\_]+)::/', $callerLine, $matches); } else { preg_match('/([a-zA-Z\_]+)::'.$functionName.'/', $callerLine, $matches); } $btIndex--; if(isset($matches[1])) { if(class_exists($matches[1])) { return $matches[1]; } else { continue; } } else { continue; } } } return $matches[1]; } ?>

« previous php.notes (#188491) next »