php父类编辑变量

时间:2013-10-11 14:18:59

标签: php class oop

我编写了新项目。我创建了一个新系统,因为它混合了。首先我有主类,它有3个变量;

  • 数据库变量:它有ezSQL类,名称是$ db
  • 存储类:我有帮助类,它存储了这个以$ store
  • 命名的变量
  • 存储数据:我已将网站选项和其他mysql数据命名为$ stored_data

及其代码:

class main {
  var $db;
  var $store;
  var $stored_data;

  public function main(){
    global $db; // ezsql class
    $this->db=$db;
  }

  public function get_helper_class($classname){
    if(isset($this->store[$classname]))
      return $this->store[$classname];
    include_once "helperclass/".$classname.".php";
    $this->store[$classname]=new $classname;
    return $this->store[$classname];
  }
}

和示例助手类的名称选项

class option extends main {
  public function get_option($optname){
    if($this->stored_data['option'][$optname])
      return $this->stored_data['option'][$optname];
    // else get result and put stored_data
  }
}

如果我使用第二个帮手

class example extends main{
  public function get_data($dataname){
    return $this->get_helper_class('option')->get_option('optionname');
  }
}

但是当我调用帮助类时,我的助手看不到$ store ['option']数据,它创建了新的选项类。 问题:

  

帮助程序类无法从主类中获取$ store,$ db,$ stored_data变量。

我希望获得编辑过的数据和变量,但它始终会创建新的数据。 我该怎么办?

1 个答案:

答案 0 :(得分:0)

也许得到正确的选择?它还取决于您如何设置选项:

return $this->get_helper_class('option')->get_option($dataname);