[英]PHP class declaration
有沒有辦法在php中將顯式類型設置為對象字段? 像這樣的東西
class House{
private Roof $roof
}
不,沒有。 PHP變量可以始終為任何類型。 但是你可以在setter中強制執行一個類型:
public function setRoof(Roof $roof) {
$this->roof = $roof;
}
您不能使用PHP代碼聲明對象字段的類型。
但您可以在docblock注釋中添加類型提示 :
class House{
/**
* @var Roof
*/
private $roof
}
這仍然不會使代碼強制執行類型,但某些IDE工具會理解docblock,並且如果您使用此變量而不符合類型提示,則可能會發出警告。
你正在尋找PHP的類型提示。 它適用於函數/方法調用。 這是手冊:
為什么不直接將$ roof分配給新的Roof()?
在使用該成員之前,您還可以使用以下內容
if (!$this->roof instanceof Roof) {
throw new Exception('$this->roof is not an instance of Roof');
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.