Tom: Kleines Array-Problem zum Frühstück

Hello und guten Morgen,

Habe gerade mal versucht, eine kleine Funktion zu erstellen...

function init($value)
{
  $_baum=explode('.',$value);
  $chain = "$_SESSION['".implode("']['",$_baum)."']";

if(isset($$chain))
  {
    $ret = $$chain;
  }
  else
  {
    $ret = false;
    $$chain = false;
  }
 ## echo $chain;
  return $ret;
}

#-----------------------------------------------------------------------------

session_start();

$_SESSION['willi'] = 'Willi';
$_SESSION['rosi']['hut'] = 'Rosalinde';

echo init('hans.macht.dampf');
echo init('willi');
echo init('rosi.hut');

Das echo $chain in der Funktion gibt zwar den Text aus: $_SESSION['hans']['macht']['dampf']

Aber da nun mit $$chain den Text parsen zu lassen geht nicht. Hat jemand eine Idee?
Insbesondere geht es darum dass nicht vorhandene Elemente auotmatisch mit NULL oder false erzeugt werden

Harzliche Grüße aus http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
  1. Hello,

    so funktioniert es...
    <?php ### init.php ###
    {
      $_baum=explode('.',$value);
      $chain = "$_SESSION['".implode("']['",$_baum)."']";

    if(eval("return isset($chain);"))
      {
        eval("$ret = $chain;");
      }
      else
      {
        $ret = NULL;
        eval("$chain = NULL;");
      }
      return $ret;
    }

    #-----------------------------------------------------------------------------

    session_start();

    $_SESSION['willi'] = 'Willi';
    $_SESSION['rosi']['hut'] = 'Rosalinde';

    echo init('hans.macht.dampf');
    echo init('willi');
    echo init('rosi.hut');

    echo "<pre>\n";
    print_r($_SESSION);
    echo "</pre>\n";

    ?>

    Ist ganz praktisch für den Aufbau von Templates, die tunlichst ausschließlich aus S_SESSION gefüttert werden. Man könnte natürlich dann auch gleich htmlentities($ret) zurückgeben.

    Wen jemand eine bessere Idee hat, dann freu ich mich auf Antwort.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau