【发布时间】:2011-02-18 11:29:14
【问题描述】:
我正在编写一个 Wordpress 插件,它在管理区域创建一个页面,并执行一些前端代码。
下面的代码抛出了一个很好的Fatal error: Using $this when not in object context 错误。这是相当神秘的,因为变量是在类中调用的。
也许我没有遵循函数和类的预期 Wordpress 插件结构,但下面的概念代码是使用 Wordpress Codex 中插件开发的相关条目创建的。
有人可以解释为什么会触发错误,因为当我在 Wordpress 代码库之外创建类的实例时,一切都很好。
if (!class_exists("MyClass")) {
class MyClass {
var $test = 'Test variable';
public function index() {
//Index code
}
public function add() {
echo $this->test;
}
}
}
add_action('admin_menu', 'my_plugin_menu');
function my_plugin_menu() {
add_menu_page('My Plugin', 'My Plugin', 'manage_options', 'my-plugin', array('MyClass', 'index'));
add_submenu_page('my-plugin', 'Add New Thing', 'Add New', 'manage_options', 'my-plugin-add', array('MyClass', 'add'));
}
【问题讨论】: