自动载入的静态类中无法在模板使用类的方法吗?

#1 chouming

代码如下:
class CHtml{

var $theme = "";
public $var;


function __construct() {
$this->theme = $GLOBALS['G_SP']['params']['themes'];
$this->var = "hello";
}
public function index(){
$out = $this->var;
return $out;
}
}


在模板中使用:



输出的结果为:
Fatal error: Undefined class constant 'theme' in D:\PHPnow\htdocs\sp\template\default\main_index.htm on line 9
Jake求助

2010-06-28 15:10:19

#2 extinct

class CHtml {


   
    //var $theme = "";

    public static $test="aaaa";





    public function __construct() {

        $this->theme = $GLOBALS['G_SP']['params']['themes'];

        self::$test = "hello";

    }

    public static function get_t() {
       // $out = $this->theme;
        return self::$test;

    }

}
echo CHtml::get_t();
?>

有空,就帮你测试了一下,这样是可以的

不过__construct()在这里赋值是行不通,因为类没有实例化

这里$this也只能用self::替代了

如果你要用 CHtml::这种方式的话,据我的能力,只能这样了

要不可以用$cHtml = new CHtml()这种

2010-06-28 16:09:05

#3 jake

静态类没有实例化,所以静态类的成员变量不能这样直接用。静态类的方法倒可以

2010-06-28 18:52:25