我有以下内容:
User::model()->exists($someParamsHere);
有没有办法让班级名称'用户'动态化?所以像这样:
$className::model()->exists($someParamsHere);
但这似乎不起作用。
我也读过一些关于ReflectionClass的内容,但我不确定如何使用它。
我尝试了这个,但是当然不会以这种方式调用model()方法:
$reflectionMethod = new ReflectionMethod($className, 'exists');
$reflectionMethod->invoke(null, $someParamsHere);
答案 0 :(得分:2)
$className::model()
适用于PHP 5.3及以上版本,如果我没有记错的话。解决方法是使用CActiveRecord::model($className)
。请参阅CActiveRecord.model()的文档。
答案 1 :(得分:1)
在PHP中> = 5.3正常工作:
<?php
class Foo {
static function Bar() {
return "Bar";
}
static function getFoo() {
return new static();
}
function getBar() {
return static::Bar();
}
}
$class = "Foo";
print $class::Bar() . "\n";
print $class::getFoo()->Bar() . "\n";
结果:
Bar
Bar