我有一个MY_Controller
php文件,其中包含MY_Controller
类和Other_Controller
,它扩展了我的application/core
文件夹中的My_Controller
类。
class MY_Controller extends CI_Controller
{
function __construct()
{
parent::__construct();
}
function SomeMethod()
{
echo "method MY_Controller";
}
}
class Other_Controller extends My_Controller
{
function __construct()
{
parent::__construct();
}
}
在我的Application/controller
文件夹上:
Class Main extends Other_Controller
{ include(APPPATH.'core/Other_Controller.php');
function __construct()
{
parent::__construct();
// Call SomeMethod function name?
}
}
我可以从MY_Controller
向主控制器调用SomeMethod函数吗?
是的,您可以简单地使用parent
关键字,就像您在构造函数中使用它一样:
class Main extends Other_Controller
{
function __construct()
{
parent::__construct();
parent::SomeMethod(); // echoes "method MY_Controller"
}
}
如果Other_Controller
类覆盖MY_Controller::SomeMethod
,您仍然可以使用完整类名和作用域解析运算符::
:从Main
类调用原始SomeMethod
class MY_Controller extends CI_Controller
{
function __construct()
{
parent::__construct();
}
function SomeMethod()
{
echo "method MY_Controller";
}
}
class Other_Controller extends My_Controller
{
function __construct()
{
parent::__construct();
}
function SomeMethod()
{
echo "method Other_Controller";
}
}
class Main extends Other_Controller
{
function __construct()
{
parent::__construct();
parent::SomeMethod(); // echoes "method Other_Controller"
MY_Controller::SomeMethod(); // echoes "method MY_Controller"
}
}