array in einer session
carsten schlichting
- php
Hallo
bei folgender Sache bin ich nicht 100% sicher:
SESSION['dfg'] = $dfg[]
wird hier jetzt automatisch in das Sessionfeld [dfg]ein array mit den Werten von $[dfg]gelegt???
Ist sowas möglich??
Grüße von mir
carsten
p.S.
oder soll ich einfach all meine Werte in die session schreiben?
kann ich z. B. mit in_array (5, $_SESSION) auch in einer Session nachprüfen, ob der wert 5 in dem Session_Array ist?
viele Grüße von mir
carsten
hi,
oder soll ich einfach all meine Werte in die session schreiben?
kommt drauf an - wie es für den jeweligen anwendungsfall günstiger ist.
kann ich z. B. mit in_array (5, $_SESSION) auch in einer Session nachprüfen, ob der wert 5 in dem Session_Array ist?
$_SESSION ist m.W. ein ganz stinknormales assoziatives array, das alles mit sich machen lässt, was auch die normalen tun.
gruß,
wahsaga
Hello,
$_SESSION ist m.W. ein ganz stinknormales assoziatives array, das alles mit sich machen lässt, was auch die normalen tun.
aber trotzdem darf auf der rechten Seite der Zuweisung an $_SESSION nicht eine implizite Deklaration stehen, oder? Allerdings habe ich auch schon mal was von Kettenzuweisungen gelesen ...
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
hi,
aber trotzdem darf auf der rechten Seite der Zuweisung an $_SESSION nicht eine implizite Deklaration stehen, oder?
natürlich, dahingehend äußerte ich mich ja auch schon in der vorherigen antwort.
die aussage, dass $_SESSION ein stinknormales assoziatives array ist, bezog sich allein auf die frage, ob man die "normalen" array-funktionen darauf anwenden kann.
gruß,
wahsaga
Hi danke für die Antworten
jetzt habe ich nocheinmal eine ganz doofe Frage.
wie schreibe ich werte in eine session ohne assoziationen.
z.B. Bild_1_3, Bild_2_4, usw
eventuell einfach so:???
$_SESSION[]= Bild_1_3;
$_SESSION[]= Bild_2_4;
Zuerst wollte ich all diese werte in einen array innerhalb der SESSION schreiben, aber wenn ich z. B. $_SESSION [Bilder] = Bild_1_3; schreibe, würde ich die werte ja immer überschreiben-oder?
grüße von mir
carsten
Hello,
eventuell einfach so:???
$_SESSION[]= Bild_1_3;
$_SESSION[]= Bild_2_4;
Lass Dir das Array nachher mal ausgeben mit der pint_r()-Funktion und schau, ob Du 'was damit anfangen kannst. Dann sollte sich Deine Frage fast von selbst beantworten.
Das Stichwort heißt 'Name' oder 'Bezeichner' oder 'Index'...
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
habs mit einem normlen Array ausprobiert und so werden die Werte nicht überschrieben. sondern es werden Indexe angelgt; wobei bei einer genauen Assoziation die Werte natürlich schon überschrieben werden -wenn man nicht ,wie wahsaga es beschrieben hat, bei der Session ein array einfügt.
also danke an alle
grüße von mir
carsten
hi,
Zuerst wollte ich all diese werte in einen array innerhalb der SESSION schreiben, aber wenn ich z. B. $_SESSION [Bilder] = Bild_1_3; schreibe, würde ich die werte ja immer überschreiben-oder?
jetzt wird's aber langsam auch mal zeit, dass eben (hoffentlich doch) gelernte nicht immer wieder sofort zu vergessen, sondern auch anzuwenden.
was sagte ich dir eben?
die schreibweise $array_xyz[] = wert erstellt ein neues element in diesem array mit dem inhalt wert.
$_SESSION['bilder'] = array();
$_SESSION['bilder'][] = $wert1;
$_SESSION['bilder'][] = $wert2;
...
ist also problemlos möglich.
gruß,
wahsaga
Hello,
natürlich, dahingehend äußerte ich mich ja auch schon in der vorherigen antwort.
Na, dedlfix hat es ja auf den Punkt gebracht.
Ich gehe jetzt zum Schluss noch davon aus, dass die Kettenzuweisung von rechts nach links aufgelöst wird.
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
echo $begrüßung;
Ich gehe jetzt zum Schluss noch davon aus, dass die Kettenzuweisung von rechts nach links aufgelöst wird.
Nur ganz rechts darf ein Ausdruck stehen. Links davon dürfen nur Variablen stehen. Das Ergebnis vom Ausdruck wird durchgereicht. Meine weiteren Versuche, weiter links noch was zu manipilieren erzeugen nur Fehler.
echo "$verabschiedung $name";
Hello,
Ich gehe jetzt zum Schluss noch davon aus, dass die Kettenzuweisung von rechts nach links aufgelöst wird.
Nur ganz rechts darf ein Ausdruck stehen. Links davon dürfen nur Variablen stehen. Das Ergebnis vom Ausdruck wird durchgereicht. Meine weiteren Versuche, weiter links noch was zu manipilieren erzeugen nur Fehler.
was dann ja auch solche konstruktionen wie
if (false !== ($pos = strpos($haystack, $needle)))
{
echo "gesuchtes Zeichen <b>$needle</b> wurde an der Position ".($pos+1)." in $haystack gefunden";
}
ermöglicht
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
Hello,
... sollte natürlich ein Scherz zum Nachdenken werden ;-)
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom
echo $begrüßung;
aber trotzdem darf auf der rechten Seite der Zuweisung an $_SESSION nicht eine implizite Deklaration stehen, oder? Allerdings habe ich auch schon mal was von Kettenzuweisungen gelesen ...
$a = $b = 42;
$a = $b[] = 42;
Beides geht. Das $var[] darf nur nicht ganz rechts stehen.
echo "$verabschiedung $name";
hi,
SESSION['dfg'] = $dfg[]
wird hier jetzt automatisch in das Sessionfeld [dfg]ein array mit den Werten von $[dfg]gelegt???
was ist denn $[dfg] ...?
und nein, ein vorhandenes array legst du so nicht in die session - $dfg[] erzeugt ein neues array-element, und steht normalerweise auf der linken seite einer zuweisung. ob es so überhaupt durch den parser geht, bezweifle ich (ohne es überprüft zu haben.)
wenn du den inhalt des arrays $dfg in der session ablegen willst, schreibst du einfach
$_SESSION['xyz'] = $dfg;
gruß,
wahsaga
echo $begrüßung;
$dfg[] erzeugt ein neues array-element, und steht normalerweise auf der linken seite einer zuweisung. ob es so überhaupt durch den parser geht, bezweifle ich (ohne es überprüft zu haben.)
Richtig bezweifelt. Das ergibt einen: Fatal error: Cannot use [] for reading
echo "$verabschiedung $name";
Hello,
bei folgender Sache bin ich nicht 100% sicher:
Dann mach einen Test und kassier ein paar Fehlermeldungungen ;-)
<?php
error_reporting(E_ALL);
$dfg = array('a'=>'1','b'=>'2');
...
$_SESSION['dfg'] = $dfg[]; ## hier erwarte ich einen Fehler...
echo "<pre>\n";
print_r($_SESSION);
echo "</pre>\n";
?>
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom