2010-04-03 19 views
5

$ bookA = "123"; $ crack = "A";PHP - Variable interne Variable?

Ich möchte etwas ähnliches wie dies tun:

echo $book$crack; 

so dass die Ausgabe ist.

Wie lautet die richtige Syntax für den Befehl echo?

Danke. Diese

+0

lesen, dass sie die von Array –

+0

auf diese Frage wurde Downvoted Jede einzelne Antwort verwenden. Warum?? – Josh

+0

Mögliches Duplikat von [Dynamische Variablennamen in PHP] (http://stackoverflow.com/questions/9257505/dynamic-variable-names-in-php) –

Antwort

3
$varname = 'book'.$crack; 
echo $$varname; 
5

sind variable variables genannt, aber man sollte arrays stattdessen verwenden.

+1

Warum sagen Sie, er sollte Arrays verwenden, wenn wir nicht erklären warum Er muss es so machen. Vielleicht stammen die Daten von der Quelle, die er nicht kontrollieren kann. Arrays sind für die Frage völlig irrelevant. –

+0

Da Arrays über mehr Funktionen verfügen (z. B. einfach zu iterieren) und im Code viel besser lesbar sind. – Quentin

+1

"Vielleicht stammen die Daten von der Quelle, auf die er keinen Einfluss hat." - weil die Auswertung der Daten von Drittanbietern eine schreckliche Praxis ist. Daten von Drittparteien sollten niemals mit realen Namen von Variablen/Funktionen/was auch immer interagieren - der einzige mögliche Weg zur Interaktion ist die Arbeit mit Daten. – zerkms

9
echo ${"book" . $crack}; 
+0

Schön. Heute etwas Neues gelernt. – zaf

2

Dies funktioniert:

$bookA = "123"; 
$crack = "A"; 
$var = "book$crack"; 
echo $$var; 
+0

Ich denke du meinst 'echo $ var;'. –

+0

Sie haben Recht, danke @FelixKling! – Josh

3

Sie könnten ein assoziatives Array verwenden möchten.

Zum Beispiel:

$book = array(); 
$book["A"] = "Some Book"; 
$crack = "A"; 

//Later 
echo $book[$crack]; 
+3

Die Verwendung von '' '' '' '' anstelle von '' 'kann zu seltsamen Parse-Fehlern führen;) – Progman

+0

Das Problem behoben, sorry. Habe nicht bemerkt, dass sich die da reingeschlichen haben.: P –