Andreas: not isset()

Hallo,
ich möchte wenn $re_GastName = mysql_result($sql_replies,$i,"GastName"); kein Ergebnis liefert, dass $re_GastName ein anderer Wert zugewiesen wird.
Ich probierte es mit:
if (!isset($re_GastName))
  $re_GastName = "Gast";

was aber nicht funktioniert.
Wie muss es richtig heißen?

Gruß Andreas

  1. hallo,

    ich möchte wenn $re_GastName = mysql_result($sql_replies,$i,"GastName"); kein Ergebnis liefert

    Hm. Ich glaube, du möchtest etwas anderes, nämlich "wenn mysql_result($sql_replies,$i,"GastName") kein Ergebnis liefert soll $re_GastName keinen Inhalt bekommen".

    dass $re_GastName ein anderer Wert zugewiesen wird.

    Nichts sollte dich daran hindern.

    Ich probierte es mit:
    if (!isset($re_GastName))

    Das bringt dir gar nix. "isset" prüft ja nur das Vorhandensein einer Variablen (siehe http://de.php.net/manual/de/function.isset.php), und die hast du vorher bereits bestätigt, also ist sie da. Du solltest prüfen, ob der Inhalt deiner Variablen irgendeinem erwarteten Wert entspricht, und deine if/else-Bedingung daran ausrichten.

    Grüße aus Berlin

    Christoph S.

    1. Hallo,
      Danke für die Antwort.

      Du solltest prüfen, ob der Inhalt deiner Variablen irgendeinem erwarteten Wert entspricht, und deine if/else-Bedingung daran ausrichten.

      Genau das wars, ich habe einfach überprüft ob die Variable Null ist.

      Gruß Andreas

      1. hallo Andreas,

        Genau das wars, ich habe einfach überprüft ob die Variable Null ist.

        Ähm, nein. Du hast mit isset überprüft, ob sie existiert, und das tut sie ja nach deiner bisherigen Konstruktion. Du solltest prüfen, ob ihr _Wert_ Null (oder etwas anderes) ist, und das leistet isset nicht, dafür gibts aber eine Menge andere Möglichkeiten.

        Grüße aus Berlin

        Christoph S.

        1. 'morgen,

          jetzt sags ihm doch einfach, du Sadist ;-)

          empty prüft auf null, "" (leerer String), 0 und auf isset
          http://at2.php.net/manual/de/function.empty.php

          schöne Grüße
          FICHTL

          1. Hi,

            sollte man dann nicht besser prüfen, ob die Variable einen bestimmten Typ hat?

            Wenn ich einen Leerstring zuweise, dann ist die Variable i.d.R. vorhanden, hat den Typ STRING und keinen Wert.

            Als was kommen denn Zuweisungen aus dem HTML-Environment bei PHP an? Doch eigentlich immer als String, oder?

            Fragen über Fragen...

            Tom

            1. sollte man dann nicht besser prüfen, ob die Variable einen bestimmten Typ hat?

              Wenn du wissen willst ob sie einen bestimmten Typ hat wirst du
              das wohl prüfen müssen. aber zB.: Wenn ich etwas aus MySql selektiere
              (mysql_select) bekomme ich entweder false oder ein resource oder true. (siehe php.net)

              Warum sollte ich da schauen ob es wirklich ein resource oder true
              ist? Wenn ich weiß das es nicht false ist muß es doch zwangsläufig ein resource oder true sein. Und da mir das sowieso egal ist was
              von den beiden zurückkommt Hauptsache es ist positiv, teste ich nur
              auf das.

              Anders Beispiel: Wenn du mittels "strpos()" feststellen willst ob
              ein String in einem anderen enthalten ist, kannst du entweder
              false oder die position (int) zurückbekommen. Da die Position aber
              auch 0 (int) sein kann kannst du nicht mit empty arbeiten oder
              einfach if (strpost('bla','bla')) {} schreiben. Dann mußt du
              explizit auf false prüfen, das kann man mit dem "==="-Operator machen

              if (strpost('bla','bla') === false)

              Kommt also immer darauf an was genau du wissen willst.

              Wenn ich einen Leerstring zuweise, dann ist die Variable i.d.R. vorhanden, hat den Typ STRING und keinen Wert.

              ja und... var_dump sagt: string(0) ""

              Als was kommen denn Zuweisungen aus dem HTML-Environment bei PHP an? Doch eigentlich immer als String, oder?

              ja, eigentlich schon, außer der Name des input-Feldes hört mit []
              auf. zB. name="test[]" dann bekommst du ein Array zurück.

              Schöne Grüße
              FICHTL