這個提升在我們日常開發中也是適用頻率很高的,在 PHP7 的時候,已經可以指定變數或者引數的型別了,如果型別不一致,在呼叫的時候就會報錯。但我們在構造方法中傳遞引數的時候,會有一些冗餘的程式碼,之前的處理方式總共分三部
在類中定義成員變數
在構造方法中定義引數
在構造方法內對成員變數進行賦值
// PHP7 class Point { public float $x; public float $y; public float $z; public function __construct(float $x = 0.0, float $y = 0.0, float $z = 0.0 ) { $this->x = $x; $this->y = $y; $this->z = $z; } }
如果我們在PHP8中就無需這麼繁瑣了,直接在構造方法的引數中進行處理,一次性搞定。
class Point { public function __construct( public float $x = 0.0, public float $y = 0.0, public float $z = 0.0, ) {} }
一次性完成了成員變數定義、引數定義以及賦值這三個過程。
程式碼越少,出 Bug 的機率就越小。
本作品採用《CC 協議》,轉載必須註明作者和本文連結