PHP: How to Pass child class __construct() arguments to parent::__construct() ?
Posted
by none
on Stack Overflow
See other posts from Stack Overflow
or by none
Published on 2009-10-21T20:38:30Z
Indexed on
2010/04/28
0:03 UTC
Read the original article
Hit count: 223
I have a class in PHP like so:
class ParentClass {
function __construct($arg) {
// Initialize a/some variable(s) based on $arg
}
}
It has a child class, as such:
class ChildClass extends ParentClass {
function __construct($arg) {
// Let the parent handle construction.
parent::__construct($arg);
}
}
What if, for some reason, the ParentClass needs to change to take more than one optional argument, which I would like my Child class to provide "just in case"? Unless I re-code the ChildClass, it will only ever take the one argument to the constructor, and will only ever pass that one argument.
Is this so rare or such a bad practice that the usual case is that a ChildClass wouldn't need to be inheriting from a ParentClass that takes different arguments?
Essentially, I've seen in Python where you can pass a potentially unknown number of arguments to a function via somefunction(*args)
where 'args' is an array/iterable of some kind. Does something like this exist in PHP? Or should I refactor these classes before proceeding?
© Stack Overflow or respective owner