在 PHP 中,類的屬性可以設置默認值。以下是設置默認值時需要注意的幾點:
const
關鍵字為屬性指定默認值。例如:class MyClass {
const DEFAULT_VALUE = 'default';
public $property = self::DEFAULT_VALUE;
}
默認值可以是標量類型(整數、浮點數、字符串或布爾值)、數組或空值(null
)。
默認值不能是對象。
如果默認值是可變類型(如數組或對象),則每次創建類的新實例時,默認值都會被復制。這可能導致不希望的行為,尤其是在使用大型對象或資源密集型對象時。
使用 final
關鍵字修飾屬性可以防止在子類中重新定義該屬性或覆蓋其默認值。例如:
class MyClass {
final public $property = 'default';
}
private
或 protected
,則只能在類的內部訪問它。這意味著不能從類的外部設置默認值。在類定義中,可以直接為這些訪問級別指定默認值。例如:class MyClass {
protected $property = 'default';
}
set
方法可以為屬性設置默認值。這允許在實例化類時或在創建對象后動態地更改默認值。例如:class MyClass {
public $property;
public function __construct($value = null) {
$this->property = $value !== null ? $value : 'default';
}
public function setProperty($value) {
$this->property = $value;
}
}
class MyClass {
private $property;
public function __construct($value = null) {
$this->property = $value !== null ? $value : 'default';
}
public function getProperty() {
return $this->property;
}
public function setProperty($value) {
$this->property = $value;
}
}