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中文网其他相关文章!