Kleines Array-Problem zum Frühstück
Tom
- php
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
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