千家信息网

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

发表于:2024-10-24 作者:千家信息网编辑
千家信息网最后更新 2024年10月24日,这篇文章给大家分享的是有关构造函数construct和ThinkPHP中initialize不同的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。ThinkPHP中i
千家信息网最后更新 2024年10月24日构造函数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安全错误 数据库的锁怎样保障安全 我国实行网络安全什么制度 网络安全消费无忧观后感 小学四年级网络安全作业 一款游戏需要多少台服务器 sql数据库备份工具 丰台区质量软件开发推广 怎么让服务器联机 三级网络技术有编程 网络安全公司世界最新排名 封锁机制属于数据库什么措施 域名dns服务器可能已发生故障 安卓软件开发工程师编程语言 网络安全公司排行前十 嘉定区软件开发服务 湖南软件开发公司名录 巨声网络技术 数据库集群的好处 控制网络技术在工作中有用嘛 odbc连接数据库实验报告 服务器硬盘灯不亮怎么查看 计算机网络技术能赚钱 串口服务器怎么测试 qt获取ftp服务器下某个文件 网络安全入职后如何提升自己 数据库主要数据库 旺旺宝服务器错误500怎么办 广东跑腿行业软件开发哪家比较好 控制网络技术在工作中有用嘛 网络安全小学主题班队会记录 海报网络安全人人有责
0