2010-02-27 25 views
8

So habe ich dieses Formular .. Mit 2 Feldern. „Youtube“ und „Link“ Ich will tun, wenn Sie in YouTube ausgefüllt haben, sollte es dies tun:PHP: wenn! Leer & leer

if(!empty($youtube)) { 
if ($pos === false) { 
echo "Du skal indtaste youtube et URL, som starter med 'http://www.youtube.com/watch?..<br>"; 
echo "<br> Har du ikke din video på YouTube, skal du ikke udfylde feltet, men kun 'Link' feltet.<br><br>"; 
echo "<a href='javascript:history.back();'>Gå tilbage</a>"; 
} 

}

Diese seine Arbeit tun, aber ich will auch auf derselben überprüfen, ob(), wenn nichts in Verbindung steht. ive So tat dies:

if(!empty($youtube) && empty($link)) { 
    if ($pos === false) { 
    echo "Du skal indtaste youtube et URL, som starter med 'http://www.youtube.com/watch?..<br>"; 
    echo "<br> Har du ikke din video på YouTube, skal du ikke udfylde feltet, men kun 'Link' feltet.<br><br>"; 
    echo "<a href='javascript:history.back();'>Gå tilbage</a>"; 
    } 
} 

Aber was, wenn ich will, das Gegenteil überprüfen, ob noch etwas in LINK und nichts in youtube? Und wenn ich überprüfen möchte, ob in diesen beiden überhaupt nichts ist?

Antwort

17
if(!empty($youtube) && empty($link)) { 

} 
else if(empty($youtube) && !empty($link)) { 

} 
else if(empty($youtube) && empty($link)) { 
} 
6

Hier ist eine kompakte Art und Weise etwas anderes in allen vier Fällen zu tun: Für

echo empty($youtube) ? (empty($link) ? 'both empty' : 'only $youtube not empty') 
        : (empty($link) ? 'only $link empty' : 'both not empty'); 
3

:

if(empty($youtube)) { 
    if(empty($link)) { 
     # both empty 
    } else { 
     # only $youtube not empty 
    } 
} else { 
    if(empty($link)) { 
     # only $link empty 
    } else { 
     # both not empty 
    } 
} 

Wenn Sie einen Ausdruck stattdessen verwenden möchten, können Sie ?: stattdessen verwenden können In einigen Fällen oder auch nur in wenigen Fällen mit vielen Kriterien sollten Sie einen Switch verwenden.

Wenn Sie mehrere Fälle haben, die die gleiche Aktion erfordern, können Sie sie stapeln und die Pause auslassen; durchfließen. Geben Sie einfach einen Kommentar wie/* Flowing through */ein, damit Sie es ausdrücklich tun.

Beachten Sie, dass die {} um die Fälle nicht erforderlich sind, aber sie sind gut für die Lesbarkeit und Code-Faltung.

Weitere Informationen zum Schalter: http://php.net/manual/en/control-structures.switch.php