PHP 中的多個建構函式模式
在PHP 中,在同一個類別中定義多個具有不同參數簽章的建構函數是不可行的。當旨在根據所使用的建構函數初始化不同的實例變數時,就會出現此挑戰。
解:
常用的技術涉及使用靜態輔助方法和預設建構子。以下是範例實作:
class Student { public function __construct() { // Allocate necessary resources } public static function withID($id) { $instance = new self(); $instance->loadByID($id); return $instance; } public static function withRow(array $row) { $instance = new self(); $instance->fill($row); return $instance; } protected function loadByID($id) { // Perform database query $row = my_db_access_stuff($id); $this->fill($row); } protected function fill(array $row) { // Populate all properties based on the provided array } }
用法:
根據可用數據,您可以使用適當的輔助方法實例化Student 物件:
如果ID是已知:
$student = Student::withID($id);
如果包含數據庫行信息的數組可用:
$student = Student::withRow($row);
好處:
以上是PHP使用多個建構函式時如何初始化不同的實例變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!