Yii2中的init()和__construct()方法有什么区别

时间:2015-07-15 07:11:24

标签: php yii yii2

init()方法:

public function init()
{
}

__construct()方法:

public function __construct()
{
}

那么,他们之间有什么不同,哪些应该使用?

1 个答案:

答案 0 :(得分:9)

init()是从yii\base\Object扩展的任何对象的方法(并且大多数对象都从它扩展)。

来自官方文档:

  

除了属性功能外,Object还引入了一个重要的功能   对象初始化生命周期。特别是,创造一个新的   Object的实例或其派生类将涉及以下内容   生命周期顺序:

     
      
  1. 调用类构造函数;
  2.   
  3. 根据给定的配置初始化对象属性;
  4.   
  5. 调用init()方法。
  6.         

    在上文中,步骤2和3都发生在课程结束时   构造函数。建议您执行对象初始化   在init()方法中,因为在那个阶段,对象配置   已经应用了。

建议使用init(),您甚至可以从源代码和扩展程序中看到它,但在某些情况下,您可以使用__construct()。有一些建议要实施,您可以在官方文档here的同一页面上找到它。

__constuct是一种本机PHP语言功能,您可以在this section中的PHP官方文档中阅读有关该功能的更多信息。