我正在寫一個WordPress插件,目前在管理端工作。我爲這個項目使用了類。我遇到的麻煩可能源於我的經驗不足。如何在PHP中正確構造並調用不同的類方法的類方法?
我有兩個班,一個是管理頁面,另一個處理自定義數據庫表的創建,刪除,查詢等
我認爲,爲了做一些數據庫操作,它將使意義在tools_page方法被調用時創建表對象($ db)。這反映在下面的代碼中。但是,致電$ db-> create_update_tables()抱怨找不到$ db。
如果我將$ db的創建移動到db_tables方法,代碼將運行。
我認爲,由於涉及的方法是公共的,$ db對象應該可用於管理頁面內的其他方法。我在研究的印象之下,首選的方法是在插件運行時聲明全局數據庫調用時使用的全局單一全局數據庫。如果我不正確,那麼做到這一點的正確方法是什麼?
管理類:
class Home_Search_Admin {
public function __construct($plugin_name, $version, $db_version) {
$this->plugin_name = $plugin_name;
$this->version = $version;
$this->db_version = $db_version;
}
public function db_tables() {
echo "Inside db_tables";
$db->create_update_tables();
wp_die();
}
public function tools_page() {
include(plugin_dir_path(__FILE__) . 'partials/home-search-admin-display.php');
$db = new Home_Search_Tables();
$this->db_tables();
}
}
的類表:
class Home_Search_Tables {
private $wpdb;
public function __construct() {
global $wpdb;
$this->wpdb = $wpdb;
print_r("Constructed!");
}
public function create_update_tables() {
print_r('I am in the method!');
}
}
什麼警告/錯誤,你得到這個? (錯誤+日誌)。由於我們沒有看到整個聲明代碼,所以使用部分代碼可以很好地知道輸出日誌 –
顯示代碼。當你不顯示實際實現 – TurtleTread
@ Elvin85錯誤(PHP)是$ db對象沒有被定義的時候,所有這些解釋都不是很有幫助。我試圖在上面更好地解釋它。謝謝你的幫助。抱歉,我很慢回到你們身邊。我整天都在場外。 –