У меня есть класс в 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? Или мне следует провести рефакторинг этих классов, прежде чем продолжить?