<?php
abstract class HTMLDecorator {
/** @var \ArrayObject */
protected $notes;
public function format(){
$html = '';
foreach ($this->getNodes() as $node)
$html .= "<p>{$node}</p>";
return $html;
}
}
class HTML extends HTMLDecorator{
public function __construct(){
$this->nodes = new \ArrayObject();
}
public function getNodes(){
return $this->nodes;
}
}
class BlockHtml extends HTMLDecorator{
protected $html;
public function __construct(HTMLDecorator $html){
$this->html = $html;
}
public function getNodes()
{
$this->html->getNodes()->append('Block html');
return $this->html->getNodes();
}
}
class ImageHtml extends HTMLDecorator{
protected $html;
public function __construct(HTMLDecorator $html){
$this->html = $html;
}
public function getNodes()
{
$this->html->getNodes()->append('Image html');
return $this->html->getNodes();
}
}
$html = new HTML();
$html = new BlockHTML($html);
$html = new ImageHTML($html);
//echo $html->format();
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/0aWYR on line 22
Output for 5.1.0
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/0aWYR on line 22
Fatal error: fatal flex scanner internal error--end of buffer missed in /in/0aWYR on line 67
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_CLASS in /in/0aWYR on line 3
Process exited with code 255.