Konstante als Variable übergeben

Microhome

Erfahrenes Mitglied
Guten Morgen zusammen,
ich habe irgendwie gerade ein Verständnisproblem.
Es geht darum eine Funktion aufzurufen, die im dritten Parameter eine definierte Konstante erwartet. Nun möchte ich diesen Parameter als Variable übergeben, was anscheinend nicht funktioniert - warum?

Es handelt sich hierbei um eine Amazon Merchant Klasse, aber ich denke das ist vollkommen egal, denn es geht ja um das Prinzip allgemein.

funktioniert NICHT:
Code:
$country = 'DE';
$t = new MarketplaceProMerchant($user,$pass,$country);
$t->GetReportIds('Order', 1);

funktioniert:
Code:
$country = DE;
$t = new MarketplaceProMerchant($user,$pass,$country);
$t->GetReportIds('Order', 1);


Warum? Ich fetche $country eigentlich aus einer Datenbank, weise der Variablen den Wert über $country = $row->country; zu. Wo liegt das Problem? Scheinbar verlangt die Funktion eine Konstante. Wie kann ich eine String-Variable entsprechend umwandeln? Ich dachte bisher immer Konstanten wären auch nichts weiter als Variablen... *confused*


Vielen Dank schonmal für eure Hilfe & beste Grüße aus Essen.
 
Genau, so habe ich bisher auch. Allerdings löst das nicht mein Verständnisproblem und da ich den "Wert" ja direkt schon in der DB habe möchte ich ihn auch gleich so nutzen. Es ist ja nicht nur DE, das war nur ein Beispiel.


Beste Grüße!
 
Hallo,

wenn ich dich richtig verstanden habe, dann speicherst du den Namen der Konstanten in der Datenbank (DE, EN etc).
Mit Hilfe der Funktion constant() kannst du den Wert einer Konstanten mit einem bestimmten Namen abrufen.
Dies dürfte genau das sein, was du suchst.

Folglich würde die Sache dann so aussehen:
PHP:
$country = 'DE';
$t = new MarketplaceProMerchant($user,$pass,constant($country));
$t->GetReportIds('Order', 1);

Gruß
BK
 
Super, vielen Dank für den Tipp!! Ich persönlich kannte diese Funktion gar nicht! Werde das umgehend testen, aber ich denke genau das wird es sein was ich gesucht habe.


Liebe Grüße und eine schöne Restwoche!
 
Zurück