• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Undefined index

Tronjer

Senior HTML'ler
Ich habe hier einen blöden PHP-Fehler, den ich einfach nicht weg bekomme. Ist zwar kein Fatal Error, aber trotzdem unschön. :(

Und zwar geht es darum, dass ich das Verhalten einer Seite über Sessions steuere, die Variablen Werte zuweisen und anschließend teilweise auf null oder false gesetzt werden. Folgender Code:

PHP:
if ($_SESSION['mailer'] == null || !isset($_SESSION['mailer'])) {
    $foo = 'bar';
} else {
    // tu was anderes
}

Gibt mir beim ersten Aufruf der Seite die Benachrichtigung:

Notice: Undefined index: mailer in .....

zurück. Der Grund dafür dürfte darin liegen, dass etwas geprüft wird, was zum Zeitpunkt des Aufrufs noch nicht existiert. Andererseits sollte die Anweisung in der Abfrage doch eine solche Meldung unterdrücken. Mehr als !isset geht doch nicht, oder?
 
PHP:
if (isset($_SESSION['mailer']) && $_SESSION['mailer'] !== null) {
    // tu was anderes
} else {
    $foo = bar;
}

Der „Trick“ ist, dass der zweite Teil der Bedingung überhaupt nicht mehr ausgewertet wird, wenn der erste fehlschlägt. Die Bedingung kann dann wegen des UND so oder so nicht mehr wahr werden. Da ist PHP clever.
 
Zurück
Oben