Referenz auf Variable wieder lösen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Referenz auf Variable wieder lösen

    Hallo,

    ich steh gerade auf'm Schlauch, wenn es darum geht, Referenzen wieder zu löschen.

    Mit $artikel = &$_SESSION['angebot_neu'][$artikelid] bau ich eine auf und möchte $artikel später nochmal verwenden.

    Klar, es gibt die Möglichkeit $artikel = &$foo vor der nächsten Verwendung aufzurufen, aber das ist nicht wirklich elegant!

    Gibt es eine Möglichkeit, die Referenz wieder zu lösen?


    gruß
    Piremilok

  • #2
    PHP-Code:
    $a 'standard';
    $b =&$a;

    $b 'geändert';
    unset(
    $b);

    $b 'neue variable'

    Kommentar


    • #3
      Hi,

      ich hab mich evtl. ein bissl zu knapp ausgedrückt.
      Wenn ich diese Vorgehensweise anwende, dann wird $a überschrieben und enthält den Wert "geändert", anstatt "standard".

      Ich möchte aber, dass meine Session nicht überschrieben wird.
      $artikel soll eigentlich nur ne Verkürzung sein und danach wieder verworfen werden.


      gruß
      Piremilok

      Kommentar


      • #4
        Wenn ich diese Vorgehensweise anwende, dann wird $a überschrieben und enthält den Wert "geändert", anstatt "standard".
        Ja, das ist nunmal so bei Referenzen...

        Ich möchte aber, dass meine Session nicht überschrieben wird. $artikel soll eigentlich nur ne Verkürzung sein und danach wieder verworfen werden.
        Gucks dir einfach noch mal an. Die Lösung steht da!

        Kommentar


        • #5
          Hi,

          unset($x)
          löscht die Referenz, nicht die Variable, auf die die Referenz verweist!
          Ausprobiert --> funktioniert!

          Super.
          Vielen Dank :-)

          Kommentar


          • #6
            Genaaau!

            Kommentar


            • #7
              wozu eigentlich überhaupt eine referenz?

              Kommentar


              • #8
                Original geschrieben von Piremilok
                $artikel soll eigentlich nur ne Verkürzung sein und danach wieder verworfen werden.

                Kommentar


                • #9
                  darum frag ich ja

                  $artikel = $_SESSION['angebot_neu'][$artikelid]

                  Kommentar


                  • #10
                    Damit wirken Änderungen aber nur auf $artikel und eben nicht auf $_SESSION.

                    Übrigens gibt es eine eigene Manualseite zum Löschen von Referenzen: http://www.php.net/manual/en/languag...nces.unset.php

                    Kommentar


                    • #11
                      ok, ich versuch's nochmal.
                      also vom op kam das:
                      Ich möchte aber, dass meine Session nicht überschrieben wird.
                      $artikel soll eigentlich nur ne Verkürzung sein und danach wieder verworfen werden.
                      also habe ich das so verstanden, dass er den relativ langen ausdruck $_SESSION['angebot_neu'][$artikelid], den er sicherlich öffter in seinem script verwendet, nicht jedesmal ausschreiben muss.
                      daher dann die zuweisung an die sehr kurze variable $artikel, soweit so gut.

                      und jetzt habe ich nicht verstanden, warum das eine referenz sein muss, da der sessionwert nicht geändert wird und nur dann eine referenz sinn machen würde.
                      ihm geht es doch offensichtlich nur darum, nicht jedesmal den ganzen rattenschwanz ausschreiben zu müssen.

                      Kommentar


                      • #12
                        Die von dir Zitierte Aussage bezog sich aber auf den missverstandenen Code:
                        PHP-Code:
                        $a 'standard';
                        $b =&$a;
                        $b 'geändert'
                        Aus dem eingangsposting geht hingegen hervor, dass er die referenz als "Abkürzung" verwenden will. danach jedoch die Variable $artikel für etwas anderes verwenden möchte, was dabei aber natürlich nicht die Session überschreiben soll.

                        Kommentar

                        Lädt...
                        X