Thursday, 20 May 2010

What is interface?

Object interfaces allow you to create code which specifies which methods a class must implement, without having to define how these methods are handled.
Interfaces are defined using the interface keyword, in the same way as a standard class, but without any of the methods having their contents defined.
All methods declared in an interface must be public, this is the nature of an interface. 


<?php
// Declare the interface 'iTemplate'interface iTemplate{
    public function 
setVariable($name$var);
    public function 
getHtml($template);
}
// Implement the interface
// This will work
class Template implements iTemplate{
    private 
$vars = array();
 
    public function 
setVariable($name$var)
    {
        
$this->vars[$name] = $var;
    }
 
    public function 
getHtml($template)
    {
        foreach(
$this->vars as $name => $value) {
            
$template str_replace('{' $name '}'$value$template);
        }

        return 
$template;
    }
}
// This will not work
// Fatal error: Class BadTemplate contains 1 abstract methods
// and must therefore be declared abstract (iTemplate::getHtml)
class BadTemplate implements iTemplate{
    private 
$vars = array();
 
    public function 
setVariable($name$var)
    {
        
$this->vars[$name] = $var;
    }
}
?>

No comments:

Post a Comment