<?php
// Declara a interface 'iTemplate'
interface iTemplate
{
public function setVariable($name, $var);
public function getHtml($template);
}
// Implementa a interface
// Isso funcionará
class Template implements iTemplate
{
private $vars = array();
public function setVariable($name, $var) { }
public function getHtml($template) { }
}
// Isso NÃO funcionará
// Fatal error: Class BadTemplate contains 1 abstract methods
// and must therefore be declared abstract (iTemplate::getHtml)
class BadTemplate implements iTemplate
{
private $vars = array('x' => 'o');
}
$o = new BadTemplate();
$o->getHtml("aa {x} ");
?>
Fatal error: Class BadTemplate contains 2 abstract methods and must therefore be declared abstract or implement the remaining methods (iTemplate::setVariable, iTemplate::getHtml) in /in/ZZFmU on line 26
Process exited with code 255.
Fatal error: Class BadTemplate contains 2 abstract methods and must therefore be declared abstract or implement the remaining methods (iTemplate::setVariable, iTemplate::getHtml) in /in/ZZFmU on line 31
Process exited with code 255.
Output for 5.0.0 - 5.0.4
Fatal error: Class BadTemplate contains 2 abstract methods and must therefore be declared abstract (iTemplate::setVariable, iTemplate::getHtml) in /in/ZZFmU on line 31
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING in /in/ZZFmU on line 4
Process exited with code 255.