Raik: Array in variabler Variable wird nicht ausgegeben

Hallo,

Ich hab prinzipiell folgende Konstruktion (im Original komplexer, aber das Prinzip reicht ja):

------------------
$tpl = (1)?'auk':'neu';
$auk = array('a' => 'test1','b' => 'test2','c' => 'test3');
$tbl = '<table><tr><td>'.$$tpl['a'].'</td><td>'.$$tpl['b'].'</td><td>'.$$tpl['c'].'</td></tr></table>';
------------------

print_r($$tpl); gibt aus:

array() {
  ["a"]=> "test1"
  ["b"]=> "test2"
  ["c"]=> "test3"
}

wenn ich allerdings $tbl ausgeben lasse:

echo $tbl;

erhalte ich nur:

<table><tr><td></td><td></td><td></td></tr></table>

Ich versuche mich zum ersten Mal mit variablen Variablen. woran liegt es, dass die Daten in $tbl nicht übernommen werden, b.z.w. wie muss ich vorgehen, um das zu erreichen? gibt es evtl. bessere Lösungen dafür?

freundl. Grüsse aus Berlin, Raik

  1. Huhu Raik

    die Lösung findest Du im Manual unter
    http://www.php.net/manual/de/language.variables.variable.php

    also statt $$tpl['a'] müsstest Du ${$tpl}['a'] schreiben.

    Ich versuche mich zum ersten Mal mit variablen Variablen. woran liegt es, dass die Daten in $tbl nicht übernommen werden, b.z.w. wie muss ich vorgehen, um das zu erreichen? gibt es evtl. bessere Lösungen dafür?

    Also ich persönlich halte nichts von variablen Variablen.
    Sie machen den Code immer ein bischen voodoo und schwer lesbar.
    Funktionen wie extract() stehen deshalb bei mir auch im Giftschrank.

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday
    1. Hallo, lulu!

      die Lösung findest Du im Manual unter
      http://www.php.net/manual/de/language.variables.variable.php
      also statt $$tpl['a'] müsstest Du ${$tpl}['a'] schreiben.

      vielen dank! :-)
      wie wäre es performance-mässig, wenn ich die beiden arrays, zwischen denen da mithilfe der varVar umgeschaltet wird, in einem weiteren zusammenfasse und per index darauf zugreife?

      freundl. Grüsse aus Berlin, Raik