Overloading (unlike overriding) is not supported in PHP. In OOP, you can overload a method to implement two or more methods with the same name but different numbers or types of parameters
Number (it depends on the language). PHP is a loosely typed language, so overloading by type does not work, but overloading by different number of parameters does not work either.
Sometimes it’s good to overload constructors in OOP so that you can create objects in different ways (passing different numbers of arguments). The trick to achieve it in PHP is:
class Myclass {
function Myclass() {
$name="Myclass".func_num_args();
$this->$name();
//Note $this- >$name() is generally wrong, but here $name is the name of the method that will be called
}
Function Myclass1($x) {
code;
}
function Myclass2($x,$y) {
code;
}
}
?>
Using this class is transparent to the user through additional processing in the class:
$obj1=new Myclass('1'); //Myclass1
will be called $obj2=new Myclass('1','2'); //Myclass2
Sometimes this is very useful.