现在我用Yii框架工作,我想写下这样的事情:PHP访问的静态成员
protected static $model = "Customer";
...
public function actionIndex() {
$model::model()->find(...
现在,它的工作原理:
protected static $model = "Customer";
protected static $model_obj;
...
public function __construct($controller, $id) {
$this->model_obj = new self::$model;
...
public function actionIndex() {
$model_obj::model()->find(...
但创建对象对于访问静态成员是件坏事。 如何避免它?
的getClass需要对象作为第一个参数,它不适合于这个目的
谷歌说:
$a = constant($myClassName . "::CONSTANT");
$b = call_user_func(array($myClassName, "static_method"));
它看起来像狗屎可怕的和平。使用这可能会造成很多麻烦。另一个解
哦!我的问题是另一个:
$controller::$NAME::model() // error
$controller_name = $controller::$NAME
$controller_name::model() // good
感谢
哦!我有另一个问题 – puchu 2011-05-27 17:18:39
如果这回答您发布的问题,请记住接受答案并发布您的其他问题在一个新的问题它也可以帮助其他用户) – Lepidosteus 2011-05-27 17:22:26