php – 无法从同一个类的相同方法调用相同的静态方法

我的Codeigniter 2.1.0应用程序中有这个错误控制器:

<?php

class Error extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
    }

    public function index()
    {
        set_status_header(404);
        $data->menuItems = Main::_menu();
        $data->title = "404 error !";
        $data->pageview = 'templates/404';
        $this->load->view('templates/main', $data);
    }

    public function facebook()
    {

        set_status_header(404);            
        $data->menuItems = Main::_menu();
        $data->title = "Facebook error !";
        $data->pageview = "templates/facebook_error";
        $this->load->view('templates/main', $data);
    }
}
?>

主控制器_menu:

<?php
class Main extends CI_Controller
{
    // ...  a lot of methods here ...
    public static function _menu()
    {
            static $menuItems = array( //just a simple array
                                     );
    }
}
?>

facebook()方法与index()完全相同,但索引工作正常,facebook()抛出此消息:

Fatal error: Class 'Main' not found in /var/www/MYApplicationName/application/controllers/error.php on line 22

地球是如何可能的?如何从facebook()方法到达Main :: _ menu()?

最佳答案
从另一个控制器调用函数会破坏MVC并将您置于HMVC领域.

如果你真的需要这样做,请查看this thread,以及CodeIgniter的Modular Extensions (HMVC) Plugin.

转载注明原文:php – 无法从同一个类的相同方法调用相同的静态方法 - 代码日志