Bu php dinamik bir sınıf özelliği tanımlamak mümkün mü?

2 Cevap php

Ben böyle bir sınıf tanımı var:

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

Ben dinamik '$ log_path' tanımlamak istiyorum

Bununla sınıf bildiriminde ama hayır şans dışında bir sabit tanımlamak için denedim

Örnek:

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

Ama bunu gerçekleştirmek için bir yol olduğunu yapamaz?

2 Cevap

Siz sınıfta yapabilirsiniz 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';
    }
}

Hayır, sizin sınıf özellik varsayılan değerleri sabitler veya değişkenler kullanamazsınız. Ben sadece yapıcı bunları öneririm ...