以下是我的簡化代碼我如何參考從一個類到另一個類的功能?
<?php
$database = new db();
$file = new file();
$input = new input();
$output = new output();
$data = "SELECT * FROM table;";
$input->page($data);
class db {
public function queryExecute($var) {
$var = $this->queryEncode($var);
$var = $this->querySubmit($var);
return $var;
}
public function queryEncode($var) {
// Do somthing
return $var;
}
public function querySubmit($var) {
// Do somthing
return $var;
}
}
的問題是,當我加入這代碼:
class input {
public function page($data) {
// Do something
$pageQuery = db::queryExecute($data);
}
}
有了這個,有兩件事情我必須做的。首先,如果服務器設置爲嚴格,我必須隱藏db::queryExecute($data);
代碼的錯誤。現在是第二個問題。如果被引用的類引用的是另一個類,但是這次是在它自己的類中,我似乎無法使用這行代碼(這是我發現可能引用其他類除了使用Abstract之外的唯一方法)。
爲了更好的解釋,該過程如下:
- 抓住
$data
變量並將其發送到$input->page()
函數($input->page($data)
)。 - 參考
db
類,$input->page()
函數通過db::queryExecute()
格式(db::queryExecute($data)
)將信息發送到$database->queryExecute()
函數。 - 但是由於我們在使用
$this->
運營商($this->queryEncode()
和$this->querySubmit()
),$this->
$database->queryExecute()
引用$database->queryEncode()
和$database->querySubmit()
使用::
,目前屬於$input->
而不是$database->
。
那麼有什麼解決方案...引用其他類不同(而不是::
)?當我定義我的類時,使用$_GLOBAL
變量?使用$this->
以外的東西?配置所有要使用的類ABSTRACT
/EXTENDS
(或INTERFACE
)?
輸出的下面的錯誤是指$var = $this->queryEncode($var);
:
Fatal error: Call to undefined method input::querySubmit() in C:\[...]\global.php on line 12
發佈您收到的錯誤。 –