重載方法解析與空參數
當提供空參數時選擇正確的重載方法的過程遵循特定的步驟順序。
1。輔助功能:
最初,編譯器會根據呼叫程式碼的存取權過濾掉任何不可存取的重載方法。
2。適用範圍:
接下來,它確定了適用的方法。如果每個形式參數都有一個可以隱式轉換的相應參數,則該方法被認為是適用的。 空值無法隱式轉換為值類型(如 int
或 Point
),因此無需考慮這些方法。
3。 params
方法處理:
使用 params
關鍵字的方法可以被呼叫為擴展(將數組視為單獨的參數)或未擴展(將其視為單一數組參數)。 如果兩者都適用,則首選擴展形式,未擴展版本被丟棄。
4。最佳配對選擇:
最後,編譯器會比較剩餘的適用方法以找到最具體的匹配。 具有更專業參數類型的方法被認為比具有更通用類型的方法更具體。
在含糊不清的場景中(多個同樣具體的方法),如提供的範例中所示,編譯器無法確定最佳候選者,從而導致編譯錯誤。 object
參數類型不如 object[]
和 string
具體,導致這種歧義。
以上是重載方法解析如何處理空值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!