Forum und email

Interfaces de Objetos

Las interfaces de objetos permiten crear código el cual especifica métodos que una clase debe implementar, sin tener que definir como serán manejados esos métodos.

Las interfaces son definidas usando la palabra reservada 'interface', de la misma manera que las clases estándar, pero sin que cualquiera de los métodos tenga su contenido definido.

Todos los métodos en una interface deben ser publicos, esto es la naturaleza de una interface.

implements

Para implementar una interface, se usa el operador implements. Todos los métodos en la interface deben ser implementados dentro de una clase; de no hacerse así resultará en error fatal. Las clases pueden implementar más de una interface si se desea al separar cada interface con una coma.

Ejemplos

Example#1 Ejemplo de 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;
    }
}

?>

Vea tambien el operador instanceof.