3v4l.org

run code in 300+ PHP versions simultaneously
<?php //implementácia rozhrania Mediator //metoda odoslat() je volaná zamestnancom a slúži k odoslaniu správ interface Mediator { public function send($message, AbstractEmployee $employee); } //definovanie rozhrania abstraktnej triedy AbstractEmployee //trieda obsahuje jedinečný atribút - identifikátor ID, metódu pre čítanie a zápis atribútu //metóda send($message) volá metódu send() sprostredkovateľa na odosielanie správ //metóda receive($message) prijíma správy a je definovaná pre každého potomka triedy //AbstractEmployee abstract class AbstractEmployee { protected $ID; protected $mediator; public function __construct ($ID, Mediator $mediator) { $this -> SetID($ID); $this -> SetMediator($mediator); } public function SetID($ID) { $this -> ID = $ID; } public function GetID() { return $this -> ID; } public function SetMediator(Mediator $mediator) { $this -> mediator = $mediator; } public function GetMediator() { return $this -> mediator ; } public function send($message) { $this -> mediator -> send($message, $this); } public abstract function receive($message); } //trieda Mediator – zabezpečuje registráciu zamestnancov, odosielanie a prijímanie správ class NewMediator implements Mediator { protected $employee = array(); public function registerEmployee (AbstractEmployee $employee) { $this -> employees[] = $employee; } public function send($message, AbstractEmployee $sender) { foreach ($this -> employees as $employee) { if($employee !== $sender) { $employee ->receive($message); } } } } //potomok triedy AbstractEmployee – trieda Employee //metódou receive($message) sa volá sprostredkovateľ, ktorému sa odovzdá posielaná správa class Employee extends AbstractEmployee { public function receive($message) { printf("Prijatie správy: \n", $this -> GetID, $message); } } //testovací script $mediator = new NewMediator(); $employee1 = new Employee('Zamestnanec 1', $mediator); $employee2 = new Employee('Zamestnanec 2', $mediator); $employee3 = new Employee('Zamestnanec 3', $mediator); $employee3 = new Employee('Zamestnanec 4', $mediator); $mediator -> registerEmployee($employee1); $mediator -> registerEmployee($employee2); $mediator -> registerEmployee($employee3); $mediator -> registerEmployee($employee4); $employee3 -> send('Správa zaslaná od ZAM3'); $employee1 -> send('Správa prijatá od ZAM1'); } ?>
Output for 5.5.24 - 5.5.30, 5.6.8 - 5.6.15
Parse error: syntax error, unexpected '}' in /in/U6NSQ on line 101
Process exited with code 255.

preferences:
164.33 ms | 1395 KiB | 22 Q