PHP INTERFACES


Class inheritanceenables you to describe a parent-child relationship
between classes. For example, you might have a base class
 Shapefrom which both Squareand Circlederive. However,
 you might often want to add additional “interfaces” to classes,
 basically meaning additional
 contracts to which
the class must adhere. This is achieved in C++ by using multiple
 inheritance and deriving from two classes. PHP chose interfaces
 as an alternative to multiple inheritance, which allows you to specify
 additional contracts a class must follow. An interface is declared
similar to a class but only includes function prototypes without
implementation and constants. Any class that “implements”
 this interface automatically has the interface’s constants defined and,
as the implementing class, needs to supply the function definitions for the
interface’s function prototypes that are all abstractmethods unless you
declare the implementing class as abstract.

abstract class Shape {
function setCenter($x, $y) {
$this->x = $x;
$this->y = $y;
}
abstract function draw();

protected $x, $y;
}
class Square extends Shape {
function draw()
{
// Here goes the code which draws the Square
...
}
}
class Circle extends Shape {
function draw()
{
// Here goes the code which draws the Circle
...
}
}
You can see that the draw()abstract method does not
 contain any code.

To implement an interface, use the following syntax:
class A implements B, C, ... {
...
}

Classes that implement an interface have an instance of a relationship
 with the interface; for example, if class Aimplements interface
 myInterface, the following results in '$obj is-A myInterface'printing:

$obj = new A();
if ($obj instanceof myInterface) {
print '$obj is-A myInterface';
}