Ho una classe in PHP in questo modo:PHP: Come passare argomenti della classe child __construct() a parent :: __ construct()?
class ParentClass {
function __construct($arg) {
// Initialize a/some variable(s) based on $arg
}
}
Ha una classe figlia, come ad esempio:
class ChildClass extends ParentClass {
function __construct($arg) {
// Let the parent handle construction.
parent::__construct($arg);
}
}
Che cosa succede se, per qualche motivo, il ParentClass bisogno di cambiare per prendere più di un argomento opzionale, che vorrei che la mia classe Child fornisse "just in case"? A meno che non re-codice il ChildClass, prenderà sempre solo l'argomento per il costruttore, e passerà sempre solo quell'argomento.
È una pratica così rara o così cattiva che il caso normale è che una ChildClass non deve necessariamente ereditare da una ParentClass che accetta argomenti diversi?
In sostanza, ho visto in Python dove è possibile passare un numero potenzialmente sconosciuto di argomenti a una funzione tramite somefunction(*args)
dove "args" è un array/iterable di qualche tipo. Esiste qualcosa del genere in PHP? O devo refactoring queste classi prima di procedere?
Ciò provoca un loop infinito su PHP 5.4.14 – Hubro
Non funziona se $ indica una classe diversa. – mAsT3RpEE
In 5.5 (forse prima) basta fare: 'call_user_func_array ('parent :: __ construct', func_get_args());'; –