為什麼陰影會幹擾字段初始化
您的類別具有名為容量和元素的字段,您嘗試在構造函數中初始化這些字段。但是,您在建構期間設定的值不會在查詢欄位值時反映出來。此行為源自於一個名為 遮蔽 的概念。
當兩個變數共用相同名稱但存在於不同範圍內時,就會發生遮蔽。在建構函式中,您可以宣告也稱為「容量」和「元素」的局部變數。這些局部變數優先於建構函數範圍內的對應字段,從而有效地遮蔽它們。
因此,對局部容量變數的賦值會初始化該變量,而不是欄位。同樣,雖然您初始化 elements 變量,但它的賦值不會影響字段,因為局部變量優先。因此,欄位容量保持預設值 (0),元素設定為 null。
要解決此問題,請刪除建構函式中的局部變數聲明,以允許名稱容量和元素引用實例變數。
或者,如果需要保留建構子參數,請使用限定名稱來明確引用實例變數。
以上是為什麼我的構造函數中的字段值未正確初始化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!