Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Undefined Index in Session-Formular

Einklappen

Neue Werbung 2019

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

  • #16
    Sorry, ich verstehs immer noch nicht

    Mit dem zweiten Teil der IF-Schleife
    PHP-Code:
    ''
    wird doch ein leeres String gesetzt, oder?

    Kommentar


    • #17
      Zitat von maeck Beitrag anzeigen
      Mit dem zweiten Teil der IF-Schleife
      if-schleife.de

      wird doch ein leeres String gesetzt, oder?
      Ja, eben.
      Vielleicht möchte man als Defaultwert eines Parameters, wenn nichts übergeben wurde, aber lieber 4711 oder 'foo' setzen.
      Mit nikoschs zweitem Vorschlag geht das problemlos.
      [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

      Kommentar


      • #18
        Zitat von ChrisB Beitrag anzeigen
        Jaja, ich weiß

        Zitat von ChrisB Beitrag anzeigen
        Ja, eben.
        Vielleicht möchte man als Defaultwert eines Parameters, wenn nichts übergeben wurde, aber lieber 4711 oder 'foo' setzen.
        Mit nikoschs zweitem Vorschlag geht das problemlos.
        Achso, jetzt check ich es erst! Mir war nicht bewusst, dass eine Parameterübergabe mehr gewicht hat, als eine Variable, die in der Parameterliste gesetzt wird.
        Ich dachte die ganze Zeit, dass die Variable "preset" ja eh auf '' gesetzt wird, deswegen machte das für mich keinen Sinn.

        Danke für die Geduld und die Erklärung!

        Schönes WE

        Kommentar


        • #19
          PHP-Code:
          function hasValue(& $value
          Was bewirkt den da das & in vor der variable?

          Kommentar


          • #20
            Zitat von BlackSpirit Beitrag anzeigen
            Was bewirkt den da das & in vor der variable?
            Übergabe per Referenz.
            PHP: Basics - Manual
            [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

            Kommentar


            • #21
              Eine Referenz auf Value. $value wird sozusagen (vereinfacht) an den aufrufenden Parameter gebunden, bildet also keine Kopie von ihm - diese Zuweisung führt nämlich zur Notice. Alle Änderungen an $value in der Funktion würden allerdings auch auf den aufrufenden Parameter wirken, deshalb ist hier Vorsicht angesagt!
              [COLOR="#F5F5FF"]--[/COLOR]
              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
              [COLOR="#F5F5FF"]
              --[/COLOR]

              Kommentar


              • #22
                Hallo nikosch,

                könntest du das vielleicht noch ein bisschen genauer ausführen, denn das habe ich mich schon immer gefragt.
                Welche Zuweisung genau führt zur Notice?
                Und was meinst du damit, dass die referenzierte Variable an den aufrufenden Parameter gebunden wird?

                Gruß Marcel

                Kommentar


                • #23
                  Jeglicher Zugriff auf eine undefinierte Variable führt zu einer Notice:
                  PHP-Code:
                  <?php
                  echo $var;
                  echo 
                  $test['key'];
                  $x $y;
                  Im vorliegenden Beispiel also alle drei.

                  Einen Wert an eine Funktion zu übergeben (beim Funktionsaufruf) bedeutet, dass dort der Parameterwert an eine lokale Variable zugewiesen wird:

                  PHP-Code:
                  function foo($bar) {
                    echo 
                  $bar;
                  }

                  foo($baz); 
                  „Intern“ wird also bei Aufruf von foo der Inhalt von $baz an die (für foo) lokale Variable $bar zugewiesen. Wenn $baz jetzt gar nicht definiert war, wird in diesem Moment der Zuweisung die Notice „geworfen“.

                  Disclaimer: Diese Erklärung ist ein Denkmodell. Die Wahrheit sieht etwas komplizierter aus: http://derickrethans.nl/talks/phparc...es-article.pdf
                  [COLOR="#F5F5FF"]--[/COLOR]
                  [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                  [COLOR="#F5F5FF"]
                  --[/COLOR]

                  Kommentar


                  • #24
                    Zitat von maeck Beitrag anzeigen
                    Welche Zuweisung genau führt zur Notice?
                    Wenn du schreibst
                    PHP-Code:
                    $x hasValue($x$preset 4711); 
                    dann führt der Aufruf der Funktion dazu, dass versucht wird, eine Kopie (des Wertes) von $x zu erstellen, mit der in der Funktion gearbeitet werden kann. Wenn es zu diesem Zeitpunkt aber noch kein $x gibt - dann geht auch das Kopieren des Wertes logischerweise schief.

                    Wenn du die Funktion jedoch so deklariert hast, dass sie den ersten Parameter per Referenz übergeben bekommt - dann besteht beim Aufruf keine Notwendigkeit, eine Kopie zu erstellen. Dann kann problemlos in die Funktion reingesprungen werden, und dort kann isset dann feststellen, dass die übergebene Referenz auf etwas nicht existierendes zeigt.

                    Und was meinst du damit, dass die referenzierte Variable an den aufrufenden Parameter gebunden wird?
                    Wenn du den Parameter in der Funktion veränderst, ändert sich auch der Wert der Variablen ausserhalb der Funktion.
                    Wenn der Parameter nicht per Referenz übergeben worden ist, dann änderst du nur die Kopie innerhalb der Funktion, die Variable ausserhalb bleibt davon unbeeinflusst.
                    [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

                    Kommentar


                    • #25
                      Vielen Dank für eure Erklärung, jetzt hab ich das endlich mal verstanden!

                      Gruß Marcel

                      Kommentar

                      Lädt...
                      X