我有以下PHP类:
class Init {
private static $instance = NULL;
public function __construct(){
}
public static function __callStatic($name, $arguments){
if (is_null(self::$instance)) {
$class = '''' . __NAMESPACE__ . ''Drivers''' . $name;
$reflection = new 'ReflectionClass($class);
self::$instance = $reflection->newInstanceArgs($arguments);
return self::$instance;
} else {
return self::$instance;
}
}
}
在不使用反射的情况下,是否有其他方法调用实例化的类,并按照该顺序使用参数数组 ?我试过call_user_func_array(),但似乎不起作用。非常感谢您的帮助
您可以这样尝试:
public class Example{
private static $instance;
public static function singleton($arguments)
{
if (!isset(self::$instance)) {
echo 'Creating new instance.';
$className = __CLASS__;
self::$instance = new $className($arguments);
}
return self::$instance;
}
}