Thomas: isst und if in einer Abfrage

Kann man diese Abfrage nicht irgendwie vereinfachen und in einer machen?

if (isset($var))
{
if (var==1)
{
echo'AUSGABE';
}
}

Thomas

  1. Hi!

    Kann man diese Abfrage nicht irgendwie vereinfachen und in einer machen?
    if (isset($var))
    {
      if (var==1)
      {
        echo'AUSGABE';
      }
    }

    if (isset($var) and $var == 1)
      ...

    Wenn solche Prüfungen ständig stattfinden, dann ist es wie im Prinzip bei jedem sich wiederholenden Code sinnvoll, sich eine Funktion zu schreiben. In deinem Fall hast du jedoch das Problem, dass du beim Weiterreichen der nicht vorhandenen Variable an eine Funktion eine Notice erzeugst (error_reporting auf E_ALL, display_errors auf on). Um diese zu vermeiden, darfst du nur den Namen der Variablen als String übergeben, und die Funktion müsste auf das Vorhandensein eines Eintrags in $GLOBAL prüfen.

    Wenn es dir nicht auf die 1 sondern darauf ankommt, dass $var nicht leer ist, dann kannst du auch empty() nehmen.

    Lo!

    1. Moin!

      Kann man diese Abfrage nicht irgendwie vereinfachen und in einer machen?
      if (isset($var))
      {
        if (var==1)
        {
          echo'AUSGABE';
        }
      }

      if (isset($var) and $var == 1)
        ...

      Wenn solche Prüfungen ständig stattfinden, dann ist es wie im Prinzip bei jedem sich wiederholenden Code sinnvoll, sich eine Funktion zu schreiben. In deinem Fall hast du jedoch das Problem, dass du beim Weiterreichen der nicht vorhandenen Variable an eine Funktion eine Notice erzeugst (error_reporting auf E_ALL, display_errors auf on). Um diese zu vermeiden, darfst du nur den Namen der Variablen als String übergeben, und die Funktion müsste auf das Vorhandensein eines Eintrags in $GLOBAL prüfen.

      Das willst du doch jetzt nicht ernsthaft vorschlagen mit $GLOBALS, oder?

      Das Beispiel dort oben ist relativ simpel lösbar: Man sorgt einfach dafür, dass $var immer existiert, und hat das Problem nicht.

      Und wenn das nicht möglich ist, sollte man tatsächlich explizit ausprogrammieren, dass eine Variable optional ist - und diesen Zustand dann alsbald beheben, damit diese ständigen Fallunterscheidungen nicht mehr nötig sind. Denn das würde das Programm unnötig kompliziert machen.

      - Sven Rautenberg

      1. Hi!

        Das willst du doch jetzt nicht ernsthaft vorschlagen mit $GLOBALS, oder?

        Ich kenne seinen Anwendungsfall nicht. Vielleicht meint er ja auch Einträge in $_POST oder $_GET, dann wäre die vorgestellte Methode sinngemäß anwendbar.

        Das Beispiel dort oben ist relativ simpel lösbar: Man sorgt einfach dafür, dass $var immer existiert, und hat das Problem nicht.

        Ja, besser ist das im Allgmeinen für einfache Variablen. Lediglich für Array-Elemente sollte es regulär Nichtexistenzen geben, wenn sie von unbekannter Quelle gefüllt werden (eben wie bei $_GET/$_POST).

        Lo!