Tôi có một lớp trong PHP như sau:PHP: Làm thế nào để vượt qua lớp con __construct() đối số cho cha mẹ :: __ construct()?
class ParentClass {
function __construct($arg) {
// Initialize a/some variable(s) based on $arg
}
}
Nó có một lớp trẻ, như vậy:
class ChildClass extends ParentClass {
function __construct($arg) {
// Let the parent handle construction.
parent::__construct($arg);
}
}
gì nếu vì một lý do, các ParentClass cần phải thay đổi để mất hơn một đối số tùy chọn mà tôi muốn lớp Con mình cung cấp "chỉ trong trường hợp"? Trừ khi tôi tái mã ChildClass, nó sẽ chỉ bao giờ lấy một đối số cho hàm tạo, và sẽ chỉ bao giờ vượt qua một đối số đó.
Thực tế này rất hiếm hoặc không tốt đến nỗi trường hợp thông thường là ChildClass không cần phải kế thừa từ ParentClass có các đối số khác nhau?
Về cơ bản, tôi đã thấy trong Python, nơi bạn có thể chuyển số lượng đối số tiềm ẩn chưa biết tới hàm qua số somefunction(*args)
trong đó 'args' là một mảng/có thể lặp lại của một số loại. Có điều gì đó như thế này tồn tại trong PHP không? Hoặc tôi có nên cấu trúc lại các lớp này trước khi tiếp tục không?
Điều này gây ra một vòng lặp vô hạn trên PHP 5.4.14 – Hubro
Sẽ không hoạt động nếu $ này trỏ đến một lớp khác. – mAsT3RpEE
Trong 5.5 (có thể sớm hơn) bạn chỉ có thể làm: 'call_user_func_array ('parent :: __ construct', func_get_args());'; –