Objekt aus Klassenname (String) erzeugen

ComFreek

Mod | @comfreek
Moderator
Hallo an alle,

habe mal wieder eine Frage. Ich will aus einem String (z.b. "TMyClass") ein Objekt dieser Klasse erzeugen, wie geht das?
Das hier habe ich bei Google gefunden: Click!.
Aber so geht das nicht:
PHP:
<?php
  error_reporting(E_ALL);
  
  class TMyClass
  {
    public function SayHello()
    {
      echo "SayHello!";
    }
  }
  
  $className = "TMyClass";
  $obj = new $className();

  var_dump($obj);
?>

var_dump zeigt mir folgendes an:
Code:
object(TMyClass)#1 (0) {
}
Wenn ich einen nicht vorhandenen Klassennamen angebe, gibt PHP mir einen Fatal-Error, also weiß PHP, dass es sich um einen Klassennamen handelt.
Doch es wird keine Funktion aufgelistet! Dann habe ich ein paar Variablen eingebaut (public $test), und var_dump gibt sie mir aus!

Vielleicht hilft es, wenn ich den Hintergrund verrate: Ich möchte aus einer XML-Datei dynamisch Objekte erzeugen, die z.B. so aussehen:
XML:
<TMyClass attr1="HALLO" attr2="TSCHAU" />

Ich bedanke mich sehr im Voraus!
 
Zuletzt bearbeitet von einem Moderator:
timestamp hat recht.
Das passt schon alles. Hättest du auch ganz einfach herausfinden können indem du folgendes zum gegen Vergleich gemacht hättest:
PHP:
$obj = new TMyClass();

var_dump($obj);

Das Ergebnis ist das gleiche.
 
Erstmal Danke für die Antworten.
Ok, das mit var_dump wusste ich nicht.

Jetzt funktioniert es, wahrscheinlich war ein Tippfehler. Wie ich diese hasse, aber die gehören nunmal zum Programmieren dazu ;)

==> Erledigt
 
Zurück