Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Wordpress-添加菜单页面,[$this,';函数';]不是有效的类名或对象_Php_Wordpress_Oop - Fatal编程技术网

Php Wordpress-添加菜单页面,[$this,';函数';]不是有效的类名或对象

Php Wordpress-添加菜单页面,[$this,';函数';]不是有效的类名或对象,php,wordpress,oop,Php,Wordpress,Oop,我想理解为什么我不能在它自己的类中使用[$this,'function'] 这项工作: init.php if ( is_admin() ) { require ( dirname ( __FILE__ ) . '/inc/admin/Admin.php' ); add_action('admin_menu', ['Mango\Admin', 'adminMenu'] ); } /inc/admin/admin.php-版本1(工作) 回答可能有点晚,但它可能也会帮助其他人 如

我想理解为什么我不能在它自己的类中使用[$this,'function']

这项工作:

init.php

if ( is_admin() )
{
    require ( dirname ( __FILE__ ) . '/inc/admin/Admin.php' );
    add_action('admin_menu', ['Mango\Admin', 'adminMenu'] );
}
/inc/admin/admin.php-版本1(工作)


回答可能有点晚,但它可能也会帮助其他人

如果函数是插件中某个类的成员,则应该是 引用为数组($this'function_name')


感谢您有远见地发布了一个老问题的正确答案。你的答案已经6年多了,它仍然帮助了我!
<?php namespace Mango;

class Admin
{
    public function adminMenu()
    {
    //this is the main item for the menu
    add_menu_page(
        'Mango Settings', //page title
        'Mango Settings', //menu title
        'manage_options', //capabilities
        'mango-settings', //menu slug
        [ 'Mango\Admin', 'settingsPage' ] // LOOK HERE *******
    );
    }

    public function settingsPage()
    {
        echo 'This is a test';
    }
}
<?php namespace Mango;

class Admin
{
    public function adminMenu()
    {
    //this is the main item for the menu
    add_menu_page(
        'Mango Settings', //page title
        'Mango Settings', //menu title
        'manage_options', //capabilities
        'mango-settings', //menu slug
        [ $this, 'settingsPage' ] // LOOK HERE *******
    );
    }

    public function settingsPage()
    {
        echo 'This is a test';
    }
}
class Admin
{
    public function adminMenu()
    {
    //this is the main item for the menu
     add_menu_page(
        'Mango Settings', //page title
        'Mango Settings', //menu title
        'manage_options', //capabilities
        'mango-settings', //menu slug
        array( $this, 'settingsPage' ) // LOOK HERE *******
    );
    }

    public function settingsPage()
    {
        echo 'This is a test';
    }
}