是否可以在php中动态定义类属性?

时间:2009-12-09 21:42:46

标签: php class

我有一个类定义,如:

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
    // ....
}

但我不能这样做,有没有办法实现这个目标?

2 个答案:

答案 0 :(得分: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 :(得分:1)

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