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

hoa*_*ngk 6 php yii yii2

init() 方法 :

public function init()
{
}
Run Code Online (Sandbox Code Playgroud)

__construct() 方法:

public function __construct()
{
}
Run Code Online (Sandbox Code Playgroud)

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

aro*_*hev 10

init()是从yii\base\Object(和大多数对象延伸)的任何对象的方法.

来自官方文档:

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

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

在上面,步骤2和3都发生在类构造函数的末尾.建议您在init()方法中执行对象初始化,因为在该阶段,已经应用了对象配置.

建议使用init(),你甚至可以从源代码和扩展中看到它,但在某些情况下,你可以使用__construct().有一些建议,来实现这一点,你可以找到它的官方文档的同一页上这里.

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