if(false !== eineFunktion())

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

  • #16
    Ausgangsfrage war gewesen, ob POST-Daten eingetrudelt sind.

    Hä?? Also wenn $_POST nicht exisitiert ist etwas gar nicht mehr gut. ;-)
    ... war nicht gefragt.
    Und isset() liefert nen bool'schen Wert zurück, weshalb PHP: if (isset($var)) { ... } völlig ausreicht.
    ... ja (sag ich doch).
    Bei combies Vorschlägen gehe ich mit der mittleren Variante.
    ... die auch einen bool´schen Wert zurück liefert, genau wie isset!



    quote:Original geschrieben von php_fussel Was ist mit der Überprüfung mit 'isset' ... also ob die Variable überhaupt existent ist ... In welchem Zusammenhang? Das braucht man ja eigentlich nur für Array-Einträge[1], so nach dem Schema: isset($array[$key])
    ... im Zusammenhang, ob Postvariablen eingetrudelt sind. Und mit isset kann ich sehr wohl auch eine "einfache" Variable überprüfen:

    PHP-Code:
    echo isset($a)? 'gesetzt' 'nicht gesetzt'
    Kurzum, ich arbeite im Zusammenhang mit $GET/$POST-Variablen eigentlich nur mit 'isset' und es sind bis dato noch keine Probleme aufgetaucht.

    Gruß php_fussel

    Kommentar


    • #17
      Der Thread treibt ab, der Thread treibt ab ... ;-)

      Original geschrieben von combie
      isset() lügt nicht!
      Du hast die Gänsefüßchen um das Wort "lügt" aber schon wahrgenommen?
      Ich glaube auch nicht, dass sich isset() durch meine Aussage beleidigt fühlt. ;-)
      Nebenbei ist isset() gar keine Funktion ...
      Ich liebe das Sprach-Konstrukt "language construct". ;-)

      Das Verhalten von isset() ist vollständig dokumentiert.
      Das dieses Verhalten irgendwo niedergeschrieben ist, bestreitet ja auch niemand.

      Determine whether a variable is set. (auch wenn das zwei Sätze später für den Sonderfall zurückgenommen wird.)

      Returns TRUE if var exists; FALSE otherwise.

      Die Menge an User-Contributions, in denen um die Wirkungsweise von isset() gestritten wird, spricht auch nicht gerade für eine klare und verständliche Definition.

      Da haste aber seltsames gehört!
      Bin aber offensichtlich nicht der einzige gewesen ...

      <input type="image" name="image[name][]" value="egal" src="btn.jpg" />

      Es liefert x und y in einem schönen Array ab. Und beim Firefox sogar noch ein Value dazu. [/B]
      Gibts 'nen besonderen Grund, warum du "image[name][]" verwendest? Hätte "image[]" nicht genügt?

      Um die Array-Bastelei mit name-Attributen gings mir aber gar nicht. Ich meinte die Angewohnheit, bei Keys den Punkt '.' (und möglicherweise noch weitere Zeichen) in einen
      Unterstrich '_' zwangsumzuwandeln
      , wenn er in bestimmten superglobalen Arrays (wie _POST oder _GET) auftaucht.
      Dieses Verhalten soll mit der Komplettabschaffung des Register-Globals-Unfugs mit
      verschwinden. Probier mal folgendes Affenformular aus:

      PHP-Code:
      ?>
      <form action="" method="post">
        <input name="pos.x" value="" />
        <input type="submit" />
      </form>
      <?php

      var_dump
      ($_POST);
      Bei mir liefert var_dump() dann sowas:
      PHP-Code:
      array(1) {
        [
      "pos_x"]=>
        
      string(0""

      Aus "pos.x" wird "pos_x".

      --

      Original geschrieben von h3ll
      ... Weil du es falsch verwendest.
      Wer sagt denn, das ICH es so verwenden würde ...?

      Wenn du prüfen willst, ob ein Array-Schlüssel vorhanden ist, nimm array_key_exists().
      Und was macht man, wenn man array_key_exists() nicht benutzen kann?
      PHP-Code:
      $var NULL;
      echo isset(
      $var) ? 'gesetzt' 'nicht gesetzt'
      *edit:* die schließende Klammer geradegerückt, damit der|die|das fussel sich wieder einkriegt ... ;-)

      Tolle Einstiegsgehälter in deinem kleinen Beispiel-Unternehmen übrigens ...
      Zuletzt geändert von fireweasel; 09.03.2009, 17:24.
      Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

      Kommentar


      • #18
        Gibts 'nen besonderen Grund, warum du "image[name][]" verwendest? Hätte "image[]" nicht genügt?
        Ein ImageButton kommt selten alleine!
        So kann man mit array_keys() puupen einfach an den Namen kommen.


        Nach
        $var = NULL;

        Liefert
        isset($var)
        False! Ja!
        Aber welche Relevanz hat das in der prakischen Anwendung?

        Keine!
        Mir ist zumindest keine einzige bekannt. Kann mir auch keine Situation vorstellen in der das von interesse sein könnte. Nenn mir eine....
        Zuletzt geändert von combie; 09.03.2009, 14:32.
        Wir werden alle sterben

        Kommentar


        • #19
          PHP-Code:
          $var NULL
          echo isset(
          $var 'gesetzt' 'nicht gesetzt'); 
          ... was soll da raus kommen? Das sehe ich jetzt schon zum 2. mal hier ... das ist falsche Syntax und funktioniert nicht! Nur die Bedingung/ Conditional wird in Klammern gesetzt ...
          PHP-Code:
          $var NULL
          echo isset(
          $var)? 'gesetzt' 'nicht gesetzt'
          Gruß php_fussel


          p.s.: Sorry, dass ich nerve, aber ich will meinen 'newbie'-Status loswerden!

          Kommentar


          • #20
            Original geschrieben von fireweasel
            Und was macht man, wenn man array_key_exists() nicht benutzen kann?
            Wann ist das der Fall?

            Kommentar


            • #21
              p.s.: Sorry, dass ich nerve, aber ich will meinen 'newbie'-Status loswerden!
              Unterlasse doch bitte Sinnlos-Postings, nur um den Zähler hochzusetzen. Wir wollen uns noch das bisschen Niveau hier aufrechterhalten (Nicht dieser Thread, das Forum an sich).

              Kommentar


              • #22
                Original geschrieben von combie
                Ein ImageButton kommt selten alleine!
                So kann man mit array_keys() puupen einfach an den Namen kommen.
                Aha, das ist mal eine Technik, die PHP anderen Server-Sprachen voraus hat!
                Allerdings ist mir das Verb "puupen" nicht so geläufig.

                ...
                $var = NULL;
                ...
                isset($var)
                ...
                Aber welche Relevanz hat das in der prakischen Anwendung?
                Okay, ich geb auf ... ;-)

                --

                Original geschrieben von h3ll
                Wann ist das der Fall?
                Scroll mal ein bisschen hoch, dann siehst du's.
                (Als kleiner Tipp: PHP kennt neben Arrays auch noch Skalare und Objekte.)
                Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

                Kommentar


                • #23
                  Original geschrieben von combie
                  $var = NULL;

                  Liefert
                  isset($var)
                  False! Ja!
                  Aber welche Relevanz hat das in der prakischen Anwendung?

                  Keine!
                  Mir ist zumindest keine einzige bekannt. Kann mir auch keine Situation vorstellen in der das von interesse sein könnte. Nenn mir eine....
                  Naja, in Zusammenhang mit Datenbanken können schon mal NULL-Werte auftauchen.
                  Also:
                  SELECT * FROM ...
                  $row = mysql_fetch_assoc(...
                  if(isset($row['feld_mit_null_wert'])

                  Bitte das Beispiel nicht auf die Goldwaage legen, jedenfalls bin ich im DB-Kontext schonmal in die isset-Falle getappt ...

                  Kommentar


                  • #24
                    Original geschrieben von phpguru42
                    Naja, in Zusammenhang mit Datenbanken können schon mal NULL-Werte auftauchen.
                    Also:
                    SELECT * FROM ...
                    $row = mysql_fetch_assoc(...
                    if(isset($row['feld_mit_null_wert'])

                    Bitte das Beispiel nicht auf die Goldwaage legen, jedenfalls bin ich im DB-Kontext schonmal in die isset-Falle getappt ...
                    PHP liefert bei MySQL immer Strings. NULL wird in '' umgewandelt, was widerum von isset() als true ausgewertet wird.

                    Kommentar


                    • #25
                      Original geschrieben von fireweasel
                      Scroll mal ein bisschen hoch, dann siehst du's.
                      (Als kleiner Tipp: PHP kennt neben Arrays auch noch Skalare und Objekte.)
                      PHP-Code:
                      class foo {
                          public 
                      $bar NULL;
                      }

                      $foo = new foo();

                      var_dump(array_key_exists('bar', (array)$foo));
                      // bool(true) 

                      Kommentar


                      • #26
                        Original geschrieben von phpguru42
                        Naja, in Zusammenhang mit Datenbanken können schon mal NULL-Werte auftauchen.
                        Also:
                        SELECT * FROM ...
                        $row = mysql_fetch_assoc(...
                        if(isset($row['feld_mit_null_wert'])

                        Bitte das Beispiel nicht auf die Goldwaage legen, jedenfalls bin ich im DB-Kontext schonmal in die isset-Falle getappt ...
                        Bei einem SELECT bla ....
                        frage ich doch nie nach isset($row['bla']) !!
                        Das wäre doch unlogisch hoch 10
                        Nein, das hat keine Praxisrelevanz.

                        Und noch nie hat es mich angeschriehen, auch wenn NULL Werte in der DB vorhanden waren

                        PHP Null !== SQL Null
                        Wir werden alle sterben

                        Kommentar


                        • #27
                          Original geschrieben von h3ll
                          PHP liefert bei MySQL immer Strings. NULL wird in '' umgewandelt
                          Nein, siehe bspw. Beschreibung von mysql_fetch_assoc:
                          Note: This function sets NULL fields to the PHP NULL value.
                          Original geschrieben von combie
                          PHP Null !== SQL Null
                          Na ja, in dem Falle aber irgendwie schon.
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #28
                            Original geschrieben von h3ll
                            PHP liefert bei MySQL immer Strings. NULL wird in '' umgewandelt, was widerum von isset() als true ausgewertet wird.
                            Da ich bei Datenbank-Kontext nicht automatisch an MySQL denke, habe ich probeweise
                            sqlite_fetch_array() getestet. Das liefert NULL als NULL. Das erscheint auch (zumindest mir) logischer, als einen Leerstring zurückzuliefern, weil beides sich doch irgendwie unterscheidet.

                            PHP-Code:
                            class foo {
                                public 
                            $bar NULL;
                            }
                            $foo = new foo();

                            var_dump(array_key_exists('bar', (array)$foo));
                            // bool(true) 
                            Wahaaa, und ich dachte, ich wäre hier der Korinthenkacker!
                            ++$x : 0 für dich!
                            Aber eigentlich hatte ich ja schon aufgegeben ...
                            Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

                            Kommentar


                            • #29
                              Original geschrieben von combie
                              Bei einem SELECT bla ....
                              frage ich doch nie nach isset($row['bla']) !!
                              Bei einem SELECT * kann ich aber nach isset($row['bla']) fragen!

                              PS: Bitte jetzt keine Diskussion anfangen, dass SELECT * böse ist und man alle benötigten Felder angeben sollte.

                              Kommentar

                              Lädt...
                              X