-1
我編寫了新的項目。我創建了一個新系統,因爲它如此混雜。首先,我有主類,它有3個變量;php父類編輯變量
- 數據庫變量:它有ezSQL類和名稱爲$ DB
- 存儲類:我有輔助類和存儲這個變量的命名爲$店
- 存儲的數據:我已經把現場的選擇和其他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,$ db,$ stored_data變量。
我想要編輯的數據和變量,但它的總是創建新的數據。 我能做什麼?
請顯示一個測試案例,顯示問題。 – Oswald
您的主類*中沒有'$ store','$ db','$ stored_data'變量。這些變量屬於*對象*(即類的*實例*)。每個對象都有自己的一組這些變量的值。 – Oswald
你的課程取決於全局狀態,包含外部腳本並且正在泄漏封裝。你期望什麼?添加'eval'或'goto',你將成爲「最差代碼」獎的主要候選人。 –