PHP:如果!空置及;空的

PHP:如果!空置及;空的,php,if-statement,and-operator,Php,If Statement,And Operator,所以我有这张表格。。 有两个字段。我想做的“Youtube”和“link”如果你已经填写了Youtube,它应该这样做: 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”和“link”如果你已经填写了Youtube,它应该这样做:

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>";
 }
if(!empty($youtube)){
如果($pos==false){
echo“Du skal indtaste youtube et URL,som starter med”http://www.youtube.com/watch?..
“; echo“
YouTube上的ikke视频,ikke udfylde feltet,men kun'Link'feltet.

”; 回声“; }
}

这可以完成它的工作,但我还想检查相同的if(),如果链接中没有任何内容。 所以我这样做了:

    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>";
     }
}
if(!empty($youtube)&&empty($link)){
如果($pos==false){
echo“Du skal indtaste youtube et URL,som starter med”http://www.youtube.com/watch?..
“; echo“
YouTube上的ikke视频,ikke udfylde feltet,men kun'Link'feltet.

”; 回声“; } }
但是,如果我想查看相反的情况,如果链接中有内容,而youtube中没有内容,该怎么办?
如果我想检查这两种情况是否都不存在?

这里有一种简洁的方法,可以在所有四种情况下做一些不同的事情:

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

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

}
else if(empty($youtube) && empty($link)) {
}
if(empty($youtube)) {
    if(empty($link)) {
        # both empty
    } else {
        # only $youtube not empty
    }
} else {
    if(empty($link)) {
        # only $link empty
    } else {
        # both not empty
    }
}
如果要改用表达式,可以改用
?:

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

对于一些病例,甚至仅仅是一些涉及很多标准的病例,考虑使用开关。

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;
    }

}
如果您有多个案例需要相同的操作,您可以将它们堆叠起来并省略中断;流过。也许你可以写一个像/*Flowing from*/这样的评论,这样你就可以明确表示你是有意这么做的

注意,案例周围的{}不是必需的,但是它们在可读性和代码折叠方面很好

有关交换机的详细信息: