Интересно, зачем вы здесь вообще используете Reflection?Может быть, вам лучше изменить конструктор так, чтобы он принимал массив?
Причины, по которым не используется Reflection, - это медлительность и нечитаемость: это гораздо проще в использовании и понимании:
$instace = new TableData($parArray);
Чем это:
$class = new ReflectionClass('TableData');
$instance = $class->newInstanceArgs($parArray);
Итак, если вы хотите, чтобы ваш конструктор обрабатывал массив как аргумент и список аргументов, вы можете использовать func_get_args
:
class TableData {
public function __constructor() {
if (func_num_args() != 1 || !is_array($params = func_get_arg(0))) {
$params = func_get_args();
}
// now the args are in $params either way
}
}