您现在的位置是:首页 > 网站建设常见问答网站建设常见问答
thinkphp的类中初始化函数
2017-03-22【网站建设常见问答】1817 人已围观
简介殷雯工作室转向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:
很赞哦! ()
相关文章
随机图文
宁波企业网站国际域名注册条件说明
1 我们发现宁波许多企业网站的域名以.COM结尾,我也可以吗? 完全可以。.COM是为商业设计的。从500大财团到小公司、家庭,超过一千五...合格的网站运营人员的职责范围
网站美工方面: 1、整体布局:分析10个经典网站的布局结构,主页面结构,次主页结构,页面结构,及相关css文件规则。 2、整个UI:界面...文化局在我公司文艺演出
随后,文艺演出隆重举行,精彩的表演不断换来员工们的精彩表演。在表演节目的期间,还穿插了些有奖知识问答,在座的每位都是积极参与活动,整个场面十...网站优化关键词排名忽高忽低是什么原因分析
相信很多做了建站和优化的用户都有遇到过网站关键词排名不稳定情况,有时候关键词排到百度首页上面去了,过两天查看词又掉下来了,这是什么原因呢?...