PHP 8.1引入了一个新的特性,即initializers(初始化器)。这个特性允许我们在声明类的属性时,直接为其赋初值。
在PHP 8.0之前,如果我们想为类的属性赋初值,我们通常需要在构造函数中手动进行赋值操作。但是在PHP 8.1中,我们可以直接在属性声明中使用初始化器来实现这一点。
下面是一个使用初始化器的示例:
class User
{
public string $name = 'John';
public int $age = 25;
}
在上面的示例中,我们在属性声明中使用了初始化器。这意味着当我们创建一个新的User对象时,name属性将被自动初始化为'John',age属性将被自动初始化为25。
我们还可以在初始化器中使用表达式来计算属性的初值。例如:
class User
{
public string $name = 'John';
public int $age = 2021 - 1990;
}
在上面的示例中,age属性的初值将根据表达式'2021 - 1990'的结果进行计算。
需要注意的是,如果我们在构造函数中手动为属性赋值,初始化器将被忽略。例如:
class User
{
public string $name = 'John';
public int $age = 25;
public function __construct(string $name, int $age)
{
$this->name = $name;
$this->age = $age;
}
}
在上面的示例中,虽然我们在属性声明中使用了初始化器,但是在构造函数中手动赋值的操作将覆盖初始化器的值。
总结一下,PHP 8.1的initializers特性允许我们在类的属性声明中直接为其赋初值。这样可以简化代码,并提高代码的可读性。
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站