Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno PHP - Jak volat metodu uvnitř class

Ahoj, poradí někdo jak vytvořit pomocí metody v nějaké třídě nový objekt ? Normálně bych to udělal takto. Problém ale je, že potřebuji předávat i nějaké parametry ale každá třída má jiný počet parametrů. Díky

function newObj($classname)
{
     return $classname();
}

$this->newObj('className');
Předmět Autor Datum
Na toto se dá použít reflexe, přesněji ReflectionClass::newInstanceArgs. class Creator { public fun… poslední
martin.developer 08.04.2015 17:41
martin.developer

Na toto se dá použít reflexe, přesněji ReflectionClass::newInstanceArgs.

class Creator
{
  public function newObj($className, $constructorArguments = [])
  {
     $reflector = new ReflectionClass($className);
     $object = $reflector->newInstanceArgs($constructorArguments);

     return $object;
  }

  public function testNewObj()
  {
     $this->newObj('className', ['arg1', 'arg2']);
  }
}

Pozor jenom na to, že reflexe je z principu pomalá (sice se s každou verzí PHP zrychluje, ale i tak), takže používat s mírou.

Zpět do poradny Odpovědět na původní otázku Nahoru