php – 将类方法作为WordPress中的回调函数传递
发布时间:2020-12-13 22:10:17 所属栏目:PHP教程 来源:网络整理
导读:我正在寻找一种方法将类方法传递给回调函数参数. 我通常使用create_function(),但我听说它很慢并且很难调试. add_action('init',create_function('','$o = new AdminPageClass;'));class AdminPageClass { function __construct() { add_action('admin_menu'
我正在寻找一种方法将类方法传递给回调函数参数.
我通常使用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','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','admin_page')); } function admin_page() { ?> <div class="wrap"> <h1>Hi there</h1> <p>Hello World!</p> </div> <?php } } 我总是在单独的文件中定义类,所以我更喜欢第一种减少主插件文件中的行的方法.但如上所述,应避免使用create_function(). 我感谢您的信息. 解决方法
我发现根本不需要创建静态方法.
add_action('admin_menu',array(new AdminPageClass,"admin_menu")); class AdminPageClass { function admin_menu() { add_options_page( 'Sample Admin Page Class','sample_admin_page_class','admin_page')); } function admin_page() { ?> <div class="wrap"> <h1>Hi there</h1> <p>Hello World!</p> </div> <?php } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |