fastix®: Kurze isset()-Notwendigkeitsfrage

Beitrag lesen

Moin!

Bei if ($gibtsnet > 2) {...} wird mir lediglich "Notice: Undefined variable/index" mitgeteilt,

Besser wäre zu prüfen, ob es das gibt und wenn diese Bedingung erfüllte wird weiter zu prüfen:

if (isset($gibtsnet) && ($gibtsnet > 2)) {
   ...
}

das ersetzt:

if (isset($gibtsnet)) {
    if ($gibtsnet > 2) {
        ...
    }
}

aber bei foreach beispielsweise ist's ja ein bisschen was anderes, also bei foreach ($gibtsnet as ...){...} bekommt man eine Warnung: "Warning: Invalid argument supplied for foreach()".

(Aus welchen Gründen)

Die Funktion erwartet ein Array und eine Variable. Die Warnstufe ist dehalb höher, als bei if $gibtsnet, weil das mit NULL oder als zahl 0 angenommen werden kann, auch wenn das unsauber ist.

Sollte ich foreach mit if (isset($gibtsnet)) {...} umschließen?

Siehe oben.

Oder gar auch bei if?

Siehe oben.

Alternative:

if (!isset($gibtsnet)) {
   # wenn nicht übergeben: mit default-Wert anlegen.
   $gibtsnet=0;
}

if (isset($arGibtsNet)) {
   # wenn nicht übergeben: als leeren-Array anlegen.
   $arGibtsNet=array();
}

Was bedeutet zum Beispiel: if (!$bsp) {} ? Ist das nur für Vars des Typs Boolean gedacht, also als Kurzform von if ($bsp == true) oder vielleicht als Kurzform von !isset($bsp)?

Ersteres, wenn es richtig wäre:

if (!$bsp) {
    # Wenn $bsp leer (NULL), falsch (false) oder 0 (Zahl 0) ist
    # Wenn $bsp leer (NULL), nicht wahr (true) oder 0 (Zahl 0) ist
    ...
}

Eine Bitte: Si einfache Sachverhalte wie den letzten findet man sehr schnell selbst durch einen Dreizeiler heraus. Nutze diese Möglichkeit, das geht schneller.

MFFG (Mit freundlich- friedfertigem Grinsen)

fastix®

--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development