Autor Zpráva
korny
Profil *
mam
$string = 'this->session->tmp[neco][krok1][ppp][2]';
$data = 'blaf';

 a chci do
$this->session>tmp[neco][krok1][ppp][2] = 'blaf';

 nevim jak prevest string na nazev mutlidim. pole.

 tohle mi nejde

     Citovat:

     ${$string} = $data; 
zatim to delam pres eval, ale to je deravy
diky predem za napady
Majkl578
Profil
Jinak než přes eval to nejde. Řešení je to otřesné a špatné - udělej to jinak.
korny
Profil *
a jak?
potrebuju online zaznamenavat obsah ve formularich a chvi to mit nejak rozumne usporadany v session.abych mohl napr smazat vse z kroku 1
<input name="formular[krok1][jmeno]">
tedy do session chci ulozit klice
[formular][krok1][jmeno]

mozna nejak pres referenci pridavat klic..ale jak?
korny
Profil *
tak jsem nasel tohle

  [quote]

 function setValueFromPath(&$arr, $path, $value = 'pokusnyVALUE'){
    // we need references as we will modify the first parameter
    $dest = &$arr;
    $finalKey = array_pop($path);
    foreach ($path as $key) {
        $dest = &$dest[$key];
    }
    $dest[$finalKey] = $value;
}
                        
 $myVarPath = array('my1', 'my11', 'my111');
setValueFromPath($this->session->tmp, $myVarPath);

  [/quote]

 pokud bych nazev pole nedal "$this->session->tmp" ,ale normalni pole tak to jde...problem je asi u predani reference u objektu..co s tim :-(
korny
Profil *
tak jsem to nakonec vyresil takhle (ale dalo to zabrat)

 public function savesessiontmp($path, $data) {
        $dest = &$this->session->tmp;
        $finalKey = array_pop ( $path );
        foreach ( $path as $key ) {
            $dest = &$dest [$key];
        }
        $dest [$finalKey] = $data;
    }

 $this->savesessiontmp($path, $data);

 snad to nekomu bude k prospechu 

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0