<?php
class Test {
public static $transport = array();
public function do_stuff() {
$test = self::get_transport();
return $test->do_stuff();
}
protected static function get_transport(){
$tests = array( 'Test_this', 'Test_that' );
foreach( $tests as $class ) {
$result = call_user_func(array($class, 'test'));
if ($result) {
self::$transport[] = $class;
break;
}
}
return new self::$transport[0]();
}
}
class Test_this {
public function do_stuff(){
return "this";
}
public static function test(){
return false;
}
}
class Test_that {
public function do_stuff(){
return "that";
}
public static function test(){
return true;
}
}
$a = new Test;
var_dump( $a->do_stuff() );
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/UeFGd on line 4
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/UeFGd on line 4
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/UeFGd on line 4
Process exited with code 255.