这就是我的代码的样子:
public function __construct() {
global $wpdb;
}
private function get_pagination() {
$user_count = $wpdb->get_var( "SELECT COUNT(*) FROM yc_customers WHERE $this->get_where" );
}
当我运行它时,我会收到此错误:
致命错误:在非对象
上调用成员函数get_var()
当我将global $wpdb;
复制到我的get_pagination()
函数时,我没有收到任何错误。我不想在我的所有功能中复制它。即使我在global $wpdb
函数中有__construct
,我为什么会收到此错误?
答案 0 :(得分:1)
如果您想使用global
,并且您不想要,那么您可以执行以下操作:
private function get_pagination() {
global $wpdb;
$user_count = $wpdb->get_var( "SELECT COUNT(*) FROM yc_customers WHERE $this->get_where" );
}
但是你可以简单地在构造函数中传递变量,例如:
public function __construct($wpdb) {
$this->wpdb = $wpdb;
}
private function get_pagination() {
$user_count = $this->wpdb->get_var( "SELECT COUNT(*) FROM yc_customers WHERE $this->get_where" );
}
寻找“依赖注入”。