请选择 进入手机版 | 继续访问电脑版

SpeedPHP框架

 找回密码
 成为新用户

QQ登录

只需一步,快速开始

查看: 4088|回复: 2

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

[复制链接]
发表于 2010-6-28 15:10:19 | 显示全部楼层 |阅读模式
代码如下:
  1. <?php
  2. class CHtml{

  3. var $theme = "";
  4. public $var;


  5. function __construct() {
  6. $this->theme = $GLOBALS['G_SP']['params']['themes'];
  7. $this->var = "hello";
  8. }
  9. public function index(){
  10. $out = $this->var;
  11. return $out;
  12. }
  13. }
复制代码


在模板中使用:
  1. <?php echo CHtml::theme; ?>
  2. <?php echo CHtml::index(); ?>
复制代码


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


Jake求助
发表于 2010-6-28 16:09:05 | 显示全部楼层
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-6-28 18:52:25 | 显示全部楼层
静态类没有实例化,所以静态类的成员变量不能这样直接用。静态类的方法倒可以
您需要登录后才可以回帖 登录 | 成为新用户

本版积分规则

手机浏览|简版|中文PHP框架|开源协议|SpeedPHP.com ( 粤ICP备08008671号

GMT+8, 2021-10-21 14:11

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表