我正在寻找一种方式来传递一个类的方法来一个回调函数参数。
我通常使用create_function()
如下,但我听说它是缓慢的,因此很难调试。
add_action('init', create_function('', '$o = new AdminPageClass;'));
class AdminPageClass {
function __construct() {
add_action('admin_menu', array(&$this, 'admin_menu'));
}
function admin_menu() {
add_options_page(
'Sample Admin Page Class',
'Sample Admin Page Class',
'manage_options',
'sample_admin-page_class',
array(&$this, 'admin_page'));
}
function admin_page() {
?>
<div class="wrap">
<h1>Hi there</h1>
<p>Hello World!</p>
</div>
<?php
}
}
当然,也可以用这样一个额外的功能来实现; 不过,我想如果可能这样做没有它。
add_action('init', 'load_admin_page_class');
function load_admin_page_class() {
$o = new AdminPageClass;
}
此外,在它之前实例化类对象使得可能的,但它创建了一个额外的行也是如此。
$o = new AdminPageClass;
add_action('admin_menu', array(&$o, 'admin_menu'));
class AdminPageClass {
function admin_menu() {
add_options_page(
'Sample Admin Page Class',
'Sample Admin Page Class',
'manage_options',
'sample_admin-page_class',
array(&$this, 'admin_page'));
}
function admin_page() {
?>
<div class="wrap">
<h1>Hi there</h1>
<p>Hello World!</p>
</div>
<?php
}
}
所以我更喜欢这降低了主插件文件的行的第一个方法我总是限定在单独的文件中的类。 但是如前所述,使用create_function()
应尽量避免。
我很欣赏你的信息。