__CLASS__获取当前的类名,
get_class()与上面一样,都是获取当前的类名
get_called_class()后期静态绑定类的名称
class testA
{
function printS()
{
echo 'testA' . __CLASS__ . '<br/>';
echo 'testA' . get_class() . '<br/>';
echo 'testA' . get_class($this) . '<br/>';
echo 'testA' . get_called_class() . '<br/>';
echo '=========' . '<br/>';
}
}
class testB extends testA
{
function printS()
{
parent::printS();
echo 'testB' . __CLASS__ . '<br/>';
echo 'testB' . get_class() . '<br/>';
echo 'testB' . get_class($this) . '<br/>';
echo 'testB' . get_called_class() . '<br/>';
}
}
$tb = new testB;
$tb->printS();
结果:
testAtestA
testAtestA
testAtestB
testAtestB
=========
testBtestB
testBtestB
testBtestB
testBtestB
单例实例get_called_class():
public static function getInstance() {
$class_name = get_called_class();
if (isset(self::$instance[$class_name])) {
return self::$instance[$class_name];
}
self::$instance[$class_name] = new $class_name;
return self::$instance[$class_name];
}
本篇是为网上实例....