J'ai donc ce formulaire .. Avec 2 champs. "Youtube" et "lien" que je veux faire si vous avez renseigné YouTube, cela devrait faire ceci:
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>";
}
}
Cela fait son travail, mais je veux aussi vérifier le même if (), si rien dans le lien. Alors j'ai fait ça:
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>";
}
}
Mais que faire si je veux vérifier le contraire, s'il y a quelque chose dans LINK et rien dans youtube? Et si je veux vérifier s'il n'y a rien du tout dans ces deux-là?
if(!empty($youtube) && empty($link)) {
}
else if(empty($youtube) && !empty($link)) {
}
else if(empty($youtube) && empty($link)) {
}
Voici une façon compacte de faire quelque chose de différent dans les quatre cas:
if(empty($youtube)) {
if(empty($link)) {
# both empty
} else {
# only $youtube not empty
}
} else {
if(empty($link)) {
# only $link empty
} else {
# both not empty
}
}
Si vous souhaitez utiliser une expression à la place, vous pouvez utiliser ?:
au lieu:
echo empty($youtube) ? ( empty($link) ? 'both empty' : 'only $youtube not empty' )
: ( empty($link) ? 'only $link empty' : 'both not empty' );
Pour plusieurs cas, ou même pour quelques cas impliquant de nombreux critères, envisagez d'utiliser un commutateur.
switch( true ){
case ( !empty($youtube) && !empty($link) ):{
// Nothing is empty...
break;
}
case ( !empty($youtube) && empty($link) ):{
// One is empty...
break;
}
case ( empty($youtube) && !empty($link) ):{
// The other is empty...
break;
}
case ( empty($youtube) && empty($link) ):{
// Everything is empty
break;
}
default:{
// Even if you don't expect ever to use it, it's a good idea to ALWAYS have a default.
// That way if you change it, or miss a case, you have some default handler.
break;
}
}
Si plusieurs cas nécessitent la même action, vous pouvez les empiler et omettre la pause; à traverser. Peut-être mettez un commentaire comme/* qui coule */donc vous êtes explicite sur le faire exprès.
Notez que le {} autour des cas n'est pas requis, mais ils sont agréables pour la lisibilité et le pliage du code.
En savoir plus sur le commutateur: http://php.net/manual/en/control-structures.switch.php