現在我用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