PHP Konstanten Problem

Moin,

ich habe ein kleines Problem, wobei ihr mir hoffentlich könnt …

Ich habe eine Konstante, die einen Wert enthält, mit dem ich eine Klasse instanzieren will. Also Wert der Konstante = Klassenname.

Soweit so gut …

Allerdings kennt ja jeder, dass Konstante kein $ haben. Dementsprechend nimmt PHP nun an, dass der Name der Konstante der Klassenname ist.

Problematik als Code:

<?php
define('A', 'Wert');

$a = new A;
?>

Man kann jetzt das Ganze umbauen, sodass es klappt, indem man es so schreibt:

<?php
define('A', 'Wert');

$hilfe = A;
$a = new $hilfe;
?>

Wo liegt jetzt genau mein Problem? Nun, die Lösung, die ich habe, empfinde ich als unschön. Es sollte doch machbar sein ohne eine Hilfsvariable auszukommen … :smoke:

Ich bin mal gespannt, ob ihr irgendetwas findet, was mir noch nicht eingefallen ist …

MfG
myPages

Mögliche Lösung

Aber ist überhaupt sinnvoll, das mit Konstanten zu machen? Entweder es ist ein fester Name (dann kannst du diesen Namen auch direkt nutzen) oder der Name ändert sich (ist also variabel, wenn du verstehst was ich meine :wink: ).

sollte es tun...

Allerdings: Wo liegt der Sinn dabei? Hier bin ich mir fast 100%ig sicher, dass es eine elegantere Lösung gibt

sollte es tun…

Allerdings: Wo liegt der Sinn dabei? Hier bin ich mir fast 100%ig sicher, dass es eine elegantere Lösung gibt

Moin,

die beiden Ansätze habe ich auch schon ausprobiert.

Bei new constant() ignoriert er alles, was hinter constant kommt - also versucht er die Klasse constant aufzurufen.

new {A} ergibt einen Parse-Error :slight_smile:

Trotzdem danke bis hierhin erstmal für die Vorschläge. :wink:

//Edit: Ich hab jetzt auf die Konstante verzichtet, da es wohl scheinbar keinen sinnvollen Weg gibt diese so zu nutzen. Schade, aber auch kein absolutes Drama.

Zur Sinn/Unsinn: Ja, an der Stelle scheint es unsinnig, an einer anderen Stelle des Scripts wäre es aber eleganter gewesen mMn. - na ja, egal :p

MfG