PHP8 Constructor parameter promotion

PHP8增加了一个新的功能,叫做Constructor parameter promotion。它可以在初始化对象属性的时候帮我们省不少代码。在PHP7中,如果我们要初始化对象的属性,我们得这么写:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Point {
public float $x;
public float $y;

public function __construct(
float $x,
float $y
) {
$this->x = $x;
$this->y = $y;
}
}

var_dump(new Point(1, 2));

而现在,使用PHP8我们可以这么写:

1
2
3
4
5
6
7
8
9
10
<?php

class Point {
public function __construct(
public float $x,
public float $y
) {}
}

var_dump(new Point(1, 2));