千家信息网

构造函数construct和ThinkPHP中initialize不同的示例分析

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章给大家分享的是有关构造函数construct和ThinkPHP中initialize不同的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。ThinkPHP中i
千家信息网最后更新 2025年01月19日构造函数construct和ThinkPHP中initialize不同的示例分析

这篇文章给大家分享的是有关构造函数construct和ThinkPHP中initialize不同的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

ThinkPHP中initialize()和construct()这两个函数都可以理解为构造函数,前面一个是tp框架独有的,后面的是php构造函数,那么这两个有什么不同呢?

在网上搜索,很多答案是两者是一样的,ThinkPHP中initialize相当于php的construct,这么说是错误的,如果这样,tp为什么不用construct,而要自己弄一个ThinkPHP版的initialize构造函数呢?

自己试一下就知道两者的不同了。

a.php

class a{

function __construct(){

echo 'a';

}

}

复制代码

b.php(注意:这里构造函数没有调用parent::__construct();)

include 'a.php';

class b extends a{

function __construct(){

echo 'b';

}

}

$test=new b();

复制代码

运行结果:

b

复制代码

可见,虽然b类继承了a类,但是输出结果证明程序只是执行了b类的构造函数,而没有自动执行父类的构造函数。

如果b.php的构造函数加上parent::__construct(),就不同了。

include 'a.php';

class b extends a{

function __construct(){

parent::__construct();

echo 'b';

}

}

$test=new b();

复制代码

那么输出结果是:

ab

复制代码

此时才执行了父类的构造函数。

我们再来看看thinkphp的initialize()函数。

BaseAction.class.php

class BaseAction extends Action{

public function _initialize(){

echo 'baseAction';

}

复制代码

IndexAction.class.php

class IndexAction extends BaseAction{

public function (){

echo 'indexAction';

}

复制代码

运行Index下的index方法,输出结果:

baseActionindexAcition

复制代码

可见,子类的_initialize方法自动调用父类的_initialize方法。而php的构造函数construct,如果要调用父类的方法,必须在子类构造函数显示调用parent::__construct();

这就是ThinkPHP中initialize和construct的不同。

感谢各位的阅读!关于"构造函数construct和ThinkPHP中initialize不同的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

函数 代码 不同 方法 结果 输出 示例 分析 两个 内容 子类 更多 篇文章 运行 不错 实用 不用 只是 就是 文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 机关网络安全信息通报材料 服务器卡会导致游戏卡顿吗 肇庆凡岛网络技术部总监 物联网安全与传统网络安全 湖南智嘉软件开发有限公司 网络安全规划实施计划 虚拟化安全性和服务器哪个好 连接数据库自动生成表单 复古传奇怎么加入服务器 广西互联网手优科技 中国网络安全市场的品牌份额 两台电脑怎么连接同一台服务器 计算机网络技术硕士指定科目 数据仓库里面有哪些数据库 dellemc服务器选择启动项 安徽飞腾服务器采购 网络安全海报用语 网易版最牛逼的服务器 网站导航软件开发 宁收银软件开发 北京智慧电梯软件开发解决方案 软件开发工程师有前景吗 ss软件开发案例分析体会 无尽贪婪和等价交换服务器 蜀门wine怎么连接服务器 威刚服务器内存 尚硅谷书城项目数据库难点 数据库筛选两个表相同 深圳每天惠软件开发有限公司 价格适中的软件开发
0