对__initialize使用分析()和()在类的构造函数__constructThinkPHP
ThinkPHP __construct不能随便用,因为你的模块类继承的上级,上级类定义;
1、__initialize()不是一个函数的PHP类,和PHP的类的构造函数只__construct()。
2,类的初始化:如果子类有自己的构造函数(__construct()),它将其初始化。否则,它调用父类的构造函数初始化自身。
3、亲子班有__construct()函数,如果子类初始化时,调用父类(__constrcut),你可以使用父:在子类:(__construct)。
如果我们写两个类,如下所示:
复制代码代码如下:类操作{
公共功能__construct()
{
echo'hello行动;
}
}
类的indexAction延伸动作{
公共功能__construct()
{
echo'hello indexAction;
}
}
为测试=新的indexAction;
/ /输出-你好indexAction
很明显,当类indexAction初始化,它的构造函数会被调用,所以输出is'hello indexAction ',但子类的修改:
复制代码如下:类indexAction延伸动作{
公共功能__initialize()
{
echo'hello indexAction;
}
}
输出is'hello行动',因为子类的indexAction没有自己的构造函数。如果我想初始化子类,我将同时调用父类的构造函数。
复制代码如下:类indexAction延伸动作{
公共功能__construct()
{
家长::__construct();
echo'hello indexAction;
}
}
这样,两个句子可以同时导出,当然,一种方法是调用父类中的子类。
复制代码代码如下:类操作{
公共功能__construct()
{
如果(method_exists($,你好))
{
$ >(您好);
}
echo'hello行动;
}
}
类的indexAction延伸动作{
公共函数hello()
{
echo'hello indexAction;
}
}
这也可以同时输出,和方法你好()在子类中是相似的__initialize()在ThinkPHP。
所以,在ThinkPHP(__initialize)的出现是一个方便程序员在写子类来避免家长频繁使用::__construct(),同时父类的构造函数,调用正确的框架,所以我们在ThnikPHP的时候初始化子类使用__initialize(),(),当然__construct你也可以修改__initialize框架()函数修改为你爱的函数名称。
希望这篇文章能帮助你在ThinkPHP框架程序设计。