Monday, 19 March 2012

Q: What is Polymorphism in PHP?


Polymorphism is derived from two Greek words. Poly (meaning many) and morph (meaning forms). Polymorphism means many forms. In C you have two methods with the same name that have different function signatures and hence by passing the correct function signature you can invoke the correct method.
This is how polymorphism is achieved in languages like C where in a function sum(int, int) differs from sum(float, float). Therefore the method sum() has many forms depending on the parameters being passed to it.
The meaning with Object Oriented languages changes. With Object Oriented language polymorphism happens:
When the decision to invoke a function call is made by inspecting the object at runtime it is called Polymorphism.
PHP 5 Polymorphism

Since PHP 5 introduces the concept of Type Hinting, polymorphism is possible with class methods. The basis of polymorphism is Inheritance and overridden methods.
Example:
 
class BaseClass {
   public function myMethod() {
 
      echo "BaseClass method called";
   }
}
 
class DerivedClass extends BaseClass {
 
   public function myMethod() {
      echo "DerivedClass method called";
 
   }
}
 
function processClass(BaseClass $c) {
   $c->myMethod();
 
}
 
$c = new DerivedClass();
processClass($c);

4 comments: