Tôi đã tự hỏi liệu có thể gọi cho cha mẹ __construct(), trước __construct() của con với thừa kế trong PHP hay không.Gọi hàm tạo cha mẹ trước hàm tạo con trong PHP
Ví dụ:
class Tag {
__construct() {
// Called first.
}
}
class Form extends Tag {
__construct() {
// Called second.
}
}
new Form();
Lý tưởng nhất, tôi sẽ có thể làm điều gì đó ở giữa chúng. Nếu điều này là không thể, có cách nào khác, điều này có cho phép tôi làm điều này không?
Lý do tôi muốn làm điều này là có thể tải một loạt các cài đặt mặc định cụ thể cho Thẻ mà Biểu mẫu có thể sử dụng khi __construct() được gọi.
CHỈNH SỬA: Xin lỗi quên để thêm điều này .. Tôi không muốn gọi lớp cha mẹ từ lớp con. Nó chỉ đơn giản bởi vì nó cho thấy một số dữ liệu cá nhân (đối với công ty mẹ) cho đứa trẻ, khi bạn vượt qua nó như là một cuộc tranh cãi
Đây là những gì tôi muốn làm:
$tag = new Tag($privateInfo, $publicInfo);
$tag->extend(new Form()); // Ideal function, prob doesn't work with inheritance.
Tag.php
class Tag {
private $privateInfo;
public $publicInfo;
__construct($private, $public) {
$this->privateInfo = $private;
$this->publicInfo = $public;
}
}
form.php
class Form extends Tag {
__construct() {
echo $this->publicInfo;
}
}
Có ý nghĩa?
Cảm ơn! Matt Mueller
Bạn có thể giải thích rõ hơn về điều này không? –
Dữ liệu cá nhân của một lớp cha sẽ không được hiển thị với bất kỳ lớp con nào. Dữ liệu công cộng hoặc được bảo vệ sẽ không riêng tư. –
Yah, nhưng nếu tham số (riêng) đi qua hàm tạo con đầu tiên, thì con có quyền truy cập vào chúng. Tôi đã chỉnh sửa nó để làm rõ. – Matt