2 Stimmen

Wie kann ich eine Variable aus einem anderen Variablennamen erstellen?

Ok...in php wie mache ich das? gegeben das folgende Szenario:

// array of letters
var $letters = array('a', 'b', 'c');
// loop through array and create empty arrays with names like $a, $b, $c
foreach($letters as $letter) {
    var $$letter = array();
}

3voto

thomasrutter Punkte 109036

Ihr Code war fast korrekt. Sie müssen nur 'var' in der zweiten und fünften Zeile entfernen.

// array of letters
$letters = array('a', 'b', 'c');
// loop through array and create empty arrays with names like $a, $b, $c
foreach($letters as $letter) {
    $$letter = array();
}

Dies funktioniert korrekt (wie von Ihnen beschrieben). Ich habe es getestet.

Plus de Informationen zu variablen Variablen hier .

Nebenbei bemerkt, würde ich davon abraten, eval() in Ihrem PHP zu verwenden.

2voto

Sean McSomething Punkte 6270

Wahrscheinlich wollen Sie das nicht tun. Der Wunsch, variable Variablen zu verwenden, ist in der Regel ein Zeichen dafür, dass Sie Datenstrukturen nicht verstehen und/oder zu clever sind. Wenn Sie dies wirklich tun wollen, könnten Sie etwas sagen wie...

extract(array_fill_keys($letters, array()));

...aber es wäre besser, wenn Sie das nicht täten. Die Verwendung von verschachtelten Arrays ist wahrscheinlich eine viel bessere Idee - vor allem, weil Sie einfach sagen können $nested['a'][] = 5 und PHP fügt den Wert an das Array an und erstellt eines, wenn nichts vorhanden ist. Alternativ könnten Sie auch einfach sagen $varname['key'] = 123 und wieder wird PHP das Array automatisch für Sie erstellen.

0voto

Jim H. Punkte 5429

Probieren Sie die Funktion eval() aus: Bewertung

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X