Одно примечание для добавления: вы не можете использовать global
внутри класса, и, конечно, вы должны использовать global
, чтобы заставить ваши объекты работать, используя $wpdb
.
Хотя вы не можете использовать global
немедленно внутри класса, вы должны объявить $wpdb
как global
внутри функции внутри класса, и это работает .
например. Это дает вам ошибку:
class wpdb_test {
global $wpdb; // can't use global as a direct 'child' of a class
public function __construct () {
...
}
}
Потому что global
нельзя использовать непосредственно внутри класса. Аналогично, простая ссылка $wpdb
внутри класса также дает вам ошибку, потому что объект не знает, что такое $wpdb
. Вы должны объявить $wpdb
как global
внутри функции, которая находится внутри вашего класса.
например. Это работает просто отлично:
class wpdb_test {
public $variable_name;
public function __construct () {
global $wpdb; // safe to use because it's inside a function
...
}
}
... и поскольку $wpdb
было объявлено global
внутри функции внутри класса, вы можете использовать его.