Как создать объект из данного имени класса в PHP? - PullRequest
0 голосов
/ 13 августа 2010

У меня есть переменная $ className, которая является именем объявленного класса в php, и я хочу

  1. создать объект этого класса
  2. обед статический метод этого класса

Ответы [ 3 ]

4 голосов
/ 13 августа 2010
$obj = new $className();

$var = $className::method();
3 голосов
/ 13 августа 2010

1: $ obj = new $ className

2: $ className :: someMethod ($ parameter)

1 голос
/ 13 августа 2010

Существует также Reflection API . E.g.:

<?php
$rc = new ReflectionClass('A');
// question 1) create an instance of A
$someArgs = array(1,2,3);
$obj = $rc->newInstanceArgs($someArgs);

// question 2) invoke static method of class A
$rm = $rc->getMethod('foo');
if ( !$rm->isStatic() ) {
  echo 'not a static method';
}
else {
  $rm->invokeArgs(null, $someArgs);
}

class A {
  public function __construct($a, $b, $c) { echo "__construct($a,$b,$c)\n";}
  public static function foo($a, $b, $c) { echo "foo($a,$b,$c)\n";}
}
...