<?php
class AnalyzerContainer{
public function analyze(iData $data) {
switch (true) {
case $data instanceof Data1:
$this->_getAnalyzer1()->ananlyzeData($data);
break;
case $data instanceof Data2:
$this->_getAnalyzer2()->ananlyzeData($data);
break;
default:
break;
};
}
protected function _getAnalyzer1(/*some dependencies*/) {
return new Analyzer1();
}
protected function _getAnalyzer2(/*some dependencies*/) {
return new Analyzer2();
}
}
interface iData{};
class Data1 implements iData{
public $x = 'x';
}
class Data2 implements iData{
public $y = 'y';
}
class Analyzer1 {
public function ananlyzeData(Data1 $data){
echo $data->x;
}
}
class Analyzer2 {
public function ananlyzeData(Data2 $data){
echo $data->y;
}
}
$container = new AnalyzerContainer();
$data1 = new Data1();
$container->analyze($data1);
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/0Y8NC on line 6
Process exited with code 255.
Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/0Y8NC on line 6
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/0Y8NC on line 6
Process exited with code 255.