构造函数的_construct之间差异的详细说明()和()_initialize在ThinkPHP
前言我相信和熟悉ThinkPHP基本熟悉_initialize()方法。我们似乎很难用_construct()。除非我们编写插件,否则它很少使用。
今天,我看到代码,突然看到_construct施工方法(),这是PHP。我的第一感觉很奇怪。虽然我经常遇到java学习之前,我没忘了很长时间。我通常的习惯是给我知识的关键
在我小小的笔记里,却不长时间的写作,高中的优雅和优雅的写作风格完全被ISO给抛弃了,再加上以前的想法,我们学会了写博客的技术。这不是关于压缩,而是让它们的碎片随着时间慢慢消失。让我们来看看详细的介绍。
首先,将代码(我的环境是WAMP,使用TP框架):
创建fatheraction.class.php文件
< PHP
类fatheraction延伸动作{
公共功能__construct(){
echo'father;
}
}
>
创建sonaction.class.php文件
< PHP
类sonaction延伸fatheraction {
公共功能__construct(){
echo'son;
}
函数索引(){
}
}
>
指数()在运行子类sonaction可以看到输出结果:
儿子
如果子类被更改为:
< PHP
类sonaction延伸fatheraction {
公共功能__construct(){
家长::__construct();
echo'son;
}
函数索引(){
}
}
>
手术结果是;
fatherson
以上结果可以得出结论:
父类的构造函数不会自动调用子类的构造函数时执行,如果你想打电话,然后加入家长::__construct()
当我们改变上述施工方法的thinkphp_initialize()方法,我们会发现,结果与前一个一致的。如果我们想要执行的_initialize()父类的方法,我们还需要用这样一句话:家长::_initialize()。
是PHP的构造函数__construct一样()是为_initialize相同()方法的ThinkPHP
首先附上两段代码:
< PHP
类fatheraction延伸动作{
公共功能__construct(){
echo'father;
}
}
>
< PHP
类sonaction延伸fatheraction {
公共功能_initialize(){
echo'son;
}
函数索引(){
}
}
>
当类sonaction索引方法时,输出的是:父亲
那是,子类调用父类的构造函数,不叫_initialize()子类的方法
代码的另外两个部分:
< PHP
类fatheraction延伸动作{
公共功能__construct(){
如果(method_exists($,你好)){
$ $ > hello();
}
echo'father;
}
}
>
< PHP
类sonaction延伸fatheraction {
公共功能_initialize(){
echo'son;
}
函数索引(){
}
函数hello(){
echo'hello;
}
}
>
这类sonaction索引方法被执行,和输入的结果hellofather
由此可以得出结论:
当ThinkPHP父类有一个构造器,子类不,ThinkPHP不执行_initialize()的子类;
当父类的子类的构造函数的ThinkPHP,调用父类的构造函数必须使用父::__construct _initialize()()的发展;
当有__construct ThinkPHP子类的构造函数和_initialize()在同一时间的方法,它只执行子类的构造函数__construct。
总结
以上就是本文的全部内容。希望本文的内容能给大家的学习或工作带来一定的帮助。如果有任何疑问,您可以留言交流,谢谢您的支持。