当前位置:首页 > 日记 > 正文

浅谈ThinkPHP中initialize和construct的区别

浅谈ThinkPHP中initialize和construct的区别

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

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

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

a.phpclass 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.phpclass BaseAction extends Action{  public function _initialize(){       echo 'baseAction';  }  IndexAction.class.phpclass IndexAction extends BaseAction{  public function (){       echo 'indexAction';    }

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

baseActionindexAcition

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

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

以上这篇浅谈ThinkPHP中initialize和construct的区别就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

相关文章

的长度,使用LENGTHB介绍,substr和sub

的长度,使用LENGTHB介绍,substr和sub

长度,功能,电脑软件,LENGTHB,substrb,我记得我曾在形式的发展做出了这样的错误,在形式方面,对应于数据库中的字段在表的数据库,假设这场一般会使用长度20个汉字,后来当我在形式上的发展,当项目类型的长度设置我,惯性将50byte,我认为即使是20个汉字…

QQ音乐如何设置铃声手机QQ音乐设置

QQ音乐如何设置铃声手机QQ音乐设置

音乐,设置,铃声,如何设置,电脑软件,有时,当你听到一些你喜欢的音乐,你想用它作为铃声。如何通过QQ音乐设置你最喜欢的铃声让我们来了解一下QQ音乐设置铃声的方式。 手机QQ音乐铃声设置方法 这个方法是愚蠢的,但它可以肯定,它是找到你的手机铃…

ps滤镜制作动态水波效果

ps滤镜制作动态水波效果

滤镜,动态,水波,效果,电脑软件,   这篇教程教PS学习者们使用PS滤镜制作动态水波效果,教程制作出来的水波效果还挺不错的,制作难度一般,推荐过来和学习啦的朋友们一起分享学习了。Photoshop滤镜制作动态水波效果先来看看最终的效果…

如何设置免费QQ空间背景音乐

如何设置免费QQ空间背景音乐

空间,背景音乐,如何设置,电脑软件,QQ,如果你想把你喜欢的歌曲作为QQ空间的背景音乐,那其实很简单。它只需要一个网络链接,然后轻松操作几个步骤,你就可以设置你的QQ空间背景音乐,让你的空间更具特色,然后跟着一点免费的背景音乐。 QQ空间背景音…

javascript编程模型构造器模式的实例分析

javascript编程模型构造器模式的实例分析

编程,模型,模式,构造器,实例分析,本文演示了Javascript编程模式的构造函数模式: 在经典的OOP语言中,构造函数(也称为构造函数)是初始化对象的特殊方法。 对象构造函数用于创建一个对象,它设置一个类型(类),并且可以接受初始化对象属性和方法的参数。 …

PS图象处理软件做出一个圆形的音乐

PS图象处理软件做出一个圆形的音乐

音乐,图标,图象,处理软件,电脑软件,Xiaobian today,我想和你分享一个方法来创建一个使用PS图象处理软件圆形音乐图标按钮,适合初学者学习。 步 打开PS软件并创建一个新的900 * 600画布。 新1 层;选择椭圆工具;;在层1点击鼠标来创建一个圆; 记住…

FTP服务器架设考虑三方面的安全因

FTP服务器架设考虑三方面的安全因

服务器架设,因素,电脑软件,FTP,架设FTP服务器,一向是把安全放在首位,特别是利用IIS之类工具建立起来的FTP服务器更是如此。如果设置不当遭受到恶意攻击,那造成整个服务器系统崩溃也绝不是危言耸听的! 因此,采取合理、周全的安全管理是很有必要…

jQuery Validator验证Ajax提交表单

jQuery Validator验证Ajax提交表单

方法,提交表单,验证,电脑软件,jQuery,serialize() 方法通过序列化表单值,创建 URL 编码文本字符串。代替了一个一个传参的方式以往写的ajax传参方式$.ajax({ url : "${ctx}/SJStandardDamPartition/insertOrUpdateDamPartition", …

如何通过软件测试访问测试网页的登

如何通过软件测试访问测试网页的登

网页,登录页面,软件测试,测试,电脑软件,如何通过软件测试访问测试网页的登录页面 这次采访多次出现,并再次总结。 具体要求:有2个文本框和一个提交按钮的着陆页。请设计超过30个测试案例。本页 本研究的目的是调查人员是否熟悉各种测试方…

Windows 2003 系统优化小技巧

Windows 2003 系统优化小技巧

系统优化,小技巧,电脑软件,Windows,1. 开机不需要按 CTRL+ALT+DELETE起头菜单->节制面板->打点工具->当地平安设置当地帐户->平安选项找到交互试上岸:不需要按CTRL+ALT+DELETE设置为已启用2. 关机不提醒,关机理由起头 -> 运行 -> gpedit.msc…

将静态照片打造出动态的喷泉效果

将静态照片打造出动态的喷泉效果

照片,动态,喷泉,静态,效果,   本教程介绍水花的动态图制作方法。大致原理:把素材图片复制多份,然后用扭曲滤镜中的海洋波纹滤镜对各图层进行波纹处理,把原图中的水花扭曲一点位置。每一层的参数需要有一点变化,然后连贯起来就看以…

缩短IIS应用池回收时间来实现减少I

缩短IIS应用池回收时间来实现减少I

假死,来实现,时间,电脑软件,IIS,  如果你在使用IIS过程中,出现假死的情况,可以来看看本文是如何来解决的。IIS日志:应用程序:ISAPI 'C:\WINDOWS\system32\inetsrv\asp.dll' 报告它自身有问题,原因如下: 'ASP 不正常,因为执行请求的 100…