宁波网站建设咨询:宁波网站建设
13780026116 宁波网站制作
网站公告
PHP技术
技术交流
网络推广
网站建设常见问答
殷雯动态
你的位置:首页> 新闻/观点 > 网站建设常见问答>thinkphp的类中初始化函数
网站建设常见问答
thinkphp的类中初始化函数

thinkphp的类中初始化函数

殷雯工作室转向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类的方法写调用.


点击:  1625    时间: 2017-03-22
上一条: 文化局在我公司文艺演出
下一条: thinkph中Cannot unset string offsets问题
 
 
快速通道: 关于我们    网站建设    主机域名    付款方式    我的声明
  
联系我们
手机扫描QQ
网站建设咨询:
咨询热线:
宁波殷雯网站建设工作室
地 址: 浙江省宁波市江东区
电 话: 13780026116 
邮 箱:
waichun@qq.com
宁波网站建设
宁波网站制作
13780026116
宁波殷雯网站建设工作室 版权所有   浙ICP备16030041号-1