【发布时间】:2011-06-05 20:36:25
【问题描述】:
我有一些这样扩展的类:
class Baseresidence extends CActiveRecord {
public static function model($className=__CLASS__) {
return parent::model($className); // framework needs, can't modify
}
}
class Site1Residence extends Baseresidence {
}
最后
class_alias('Site1Residence', 'Residence'); // this is part of an autoloader
所以最后我喜欢这个Residence extends Site1Residence extends Baseresidence extends CActiveRecord
在 Baseresidence 中,我有一个静态方法 model(),它检索一个实例。
现在我可以打电话了::
$r=Residence::model();
问题是__CLASS__ 常量被用作默认值,并且在该级别上是 Baseresidence,我需要顶级类名(使用别名创建),它应该是 'Residence'
如果我这样做:
echo get_class($r); // the Baseresidence is printed
目标是打印residence
我不想在调用$r=Residence::model();时传递任何东西我想在根上解决它。
如何获得该级别的顶级类名?
【问题讨论】:
-
常量
__CLASS__,在Baseresidence类中使用将始终包含Baseresidence。你不能改变它。