Trong PHP Constructors and Destructors documentation nó khẳng địnhLà các hàm tạo cha mẹ được gọi nếu một lớp con KHÔNG định nghĩa một hàm tạo?
Lưu ý: constructors Chánh không được gọi ngầm nếu lớp trẻ định nghĩa một constructor. Để chạy một hàm tạo cha, một cuộc gọi đến parent :: __ construct() trong hàm tạo con là bắt buộc.
Nhưng điều gì sẽ xảy ra nếu lớp con không gọi hàm dựng, liệu trình tạo cha mẹ vẫn được gọi? Hoặc chúng ta có nên tạo một hàm khởi tạo gọi hàm tạo con không?
IE:
class BaseClass {
function __construct() {
print "In BaseClass constructor\n";
}
}
class SubClass extends BaseClass {
function __construct() {
parent::__construct();
}
}
Có thể [hướng dẫn] (http://www.php.net/manual/en/language.oop5.decon.php) đã được cập nhật gần đây hơn, nhưng nó cho biết "Nếu đứa trẻ không xác định constructor sau đó nó có thể được thừa hưởng từ lớp cha giống như một phương thức lớp bình thường (nếu nó không được khai báo là private). " – MrWhite
@ w3d Cảm ơn bạn đã cập nhật :). –
Thậm chí bạn có thể khai báo một hàm tạo là riêng tư không? Điều đó dường như đánh bại mục đích của việc có một lớp học ở nơi đầu tiên. – eggmatters