首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP: if !empty & empty

PHP: if !empty & empty
EN

Stack Overflow用户
提问于 2010-02-27 18:57:26
回答 3查看 112K关注 0票数 12

所以我有这个表格..有2个字段。"Youtube“和"link”我想做的是,如果你已经填写了YouTube,它应该这样做:

代码语言:javascript
复制
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(),如果在link中没有任何东西。所以我这样做了:

代码语言:javascript
复制
    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>";
     }
}

但是,如果我想要检查相反的情况,如果链接中有一些内容,而youtube中没有任何内容,那该怎么办?如果我想检查这两个文件里是不是什么都没有?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-02-27 19:00:09

代码语言:javascript
复制
if(!empty($youtube) && empty($link)) {

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

}
else if(empty($youtube) && empty($link)) {
}
票数 19
EN

Stack Overflow用户

发布于 2010-02-27 19:20:21

以下是在所有四种情况下执行不同操作的紧凑方法:

代码语言:javascript
复制
if(empty($youtube)) {
    if(empty($link)) {
        # both empty
    } else {
        # only $youtube not empty
    }
} else {
    if(empty($link)) {
        # only $link empty
    } else {
        # both not empty
    }
}

如果您希望使用表达式,则可以使用?:

代码语言:javascript
复制
echo empty($youtube) ? ( empty($link) ? 'both empty' : 'only $youtube not empty' )
                     : ( empty($link) ? 'only $link empty' : 'both not empty' );
票数 8
EN

Stack Overflow用户

发布于 2013-01-25 17:40:58

对于几种情况,甚至是涉及许多条件的几种情况,请考虑使用开关。

代码语言:javascript
复制
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;
    }

}

如果您有多个需要相同操作的案例,您可以将它们堆叠在一起,并省略break;以流转。也许可以通过*/添加一个像/*Flowing这样的注释,这样你就可以明确表示你是故意这样做的。

请注意,案例周围的{}不是必需的,但它们对于可读性和代码折叠很好。

有关交换机的更多信息:http://php.net/manual/en/control-structures.switch.php

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2347061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档