2009-12-09 75 views
2

我有一个类定义,如:是否可以在php中动态定义类属性?

class JConfig { 
    var $offline = '0'; 
    var $editor = 'tinymce'; 
    var $list_limit = '20'; 
    var $helpurl = 'http://help.joomla.org'; 
    var $log_path = '/path/to/logs'; 
    // .... 
} 

我要动态地界定“$ log_path”

我试图定义类的声明之外的常数,而是与

没有运气例如:

if(!defined('ROOT_PATH')){ 
    define('ROOT_PATH', dirname(__FILE__)); 
} 
class JConfig { 
    var $offline = '0'; 
    var $editor = 'tinymce'; 
    var $list_limit = '20'; 
    var $helpurl = 'http://help.joomla.org'; 
    var $log_path = ROOT_PATH . '/logs'; // This generates a error 
    // .... 
} 

但我不能这样做,有没有办法做到这一点?

+1

为什么不这样做的__construct方法? – sheats 2009-12-09 21:48:22

回答

5

你可以做到这一点的类constructor

class JConfig { 
    var $offline = '0'; 
    var $editor = 'tinymce'; 
    var $list_limit = '20'; 
    var $helpurl = 'http://help.joomla.org'; 
    var $log_path; 

    public function __construct(){ 
     $this->log_path = ROOT_PATH . '/logs'; 
    } 
} 
1

不,您不能在您的类属性默认值中使用常量或变量。我建议你只是将它们设置在构造...

相关问题