У меня есть класс в PHP, например:
class ParentClass {
function __construct($arg) {
// Initialize a/some variable(s) based on $arg
}
}
Он имеет дочерний класс, как таковой:
class ChildClass extends ParentClass {
function __construct($arg) {
// Let the parent handle construction.
parent::__construct($arg);
}
}
Что делать, если по какой-то причине ParentClass необходимо изменить, чтобы принять более одного необязательного аргумента, который я бы хотел, чтобы мой класс Child обеспечивал "на всякий случай"? Если я не перекодирую ChildClass, он будет когда-либо принимать только один аргумент конструктору и будет когда-либо передавать только один аргумент.
Является ли такая редкая или такая плохая практика, что обычный случай заключается в том, что ChildClass не нужно наследовать от ParentClass, который принимает разные аргументы?
По существу, я видел в Python, где вы можете передать потенциально неизвестное количество аргументов функции через somefunction(*args)
, где "args" - это массив/итерируемый какой-либо вид. Что-то вроде этого существует в PHP? Или мне нужно реорганизовать эти классы, прежде чем продолжить?