您现在的位置是:首页 > 网站建设常见问答网站建设常见问答
thinkphp的类中初始化函数
2017-03-22【网站建设常见问答】2069 人已围观
简介殷雯工作室转向thinkphp开发web程序后,遇到了一些较复杂的问题, tp有很多自定义的函数方法, 例如我们一般初如化类是__construct , 但tp...
殷雯工作室转向thinkphp开发web程序后,遇到了一些较复杂的问题, tp有很多自定义的函数方法, 例如我们一般初如化类是__construct , 但tp的程序里我常看到_initialize方法, 每次都是写在前面,功能表现的和类构造函数也是相近,今天看到以下文章让我们更明确的知道了tp类中的方法初始化有哪些区别.
(1)_initialize()函数是在任何方法执行之前,都要执行的,当然也包括_ _construct构造函数,注意,_ _construct这里是双划线,而_initialize()函数是单划线。
(2)如果父子类均有_initialize()函数,则子类覆盖了父类的,如果子类没有而父类有,则子类继承父类的。在调用子类对象的_initialize()时,不会导致自动调用父类的_initialize()。(3)默认情况下,子类的构造函数也不会自动调用父类的构造函数,这一点与Java不同。实际编写子类的构造函数时,一般都要加上父类构造函数的主动调用 parent::_ _construct(),否则会导致子类对象空指针的异常,如Call to a member function assign() on a non-object。
(4)_initialize()函数是在“任何”方法调用之前都要调用的,也就是说如果存在_initialize()函数,调用对象的任何方法都会导 致_initialize()函数的自动调用,而_ _construct构造函数仅仅在创建对象的时候调用一次,跟其它方法调用没有关系。
上面这四点概括的很详细,我们来例举一个场景. 比如在后台一个功能模块about单页, 在很多的链接页需要显示about的分类下拉菜单,这时就可以在aboutaction里把调用about类的php代码放在这里. 这样就不用次次把about类的方法写调用.
关注宁波网站建设博客,更多精彩分享,敬请期待!
Tags:
很赞哦! ()
相关文章
随机图文
网站建设的最终目的
为什么我们要做网站呢?这个问题拿今天来说应该是相当简单来回答的。 众所周知,做网站不在乎做网站的外表(外表是做给自己看) 看中的是...
dedecms如何添加自定义函数
最近本工作室开始使用dedecms二次开发网站,很多功能需要重新学习一下。幸好网上关于dedecms二次开发网站建设的例子不少。今天我们...
Linux下的压缩解压缩命令详解
linux的命令总是有一堆的参数,这些参数平常是没什么用,真要使用到时会使我们的工作方便很多,以下是linux zip命令详解记录以便查询 ...
网站不能经常改版的原因
我们在制作网站的同时光考虑网站视觉上的效果,忽略网站文字上的作用是对seo网站优化推广的一特大坏处。网站改版任务我们在注重提升网站视...




微信收款码
支付宝收款码