- var_dump: documentation ( source)
<?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() );