ok i have 2 classes
class A{
public function say(){
echo "hello<br>";
}
}
class B extends A{
public function say(){
echo "hi<br>";
}
}
$haha = new B();
$haha->say();
well as you see i overloaded the method say() in class b... but what i want here is to merge the two methods and not overwrite each other. my desired output I want is this
hello<br>
hi<br>
is this possible?
NOTE: if my terms are wrong, please teach me the right terms. I am really new to PHP OOP
Edit: Based on your comments, you want something like this:
I have called the new function
_say
, but you can give it any name you want. This way, your teammates just define a method called _say(), and it will automatically be called by classA
's say method.This is called the Template method pattern
Old answer
Just add
parent::say();
to the overloading method:This tells php to execute the overloaded method. If you don't want extending classes to overload it's methods, you can declare them final.
See also the php manual about extending classes.