所以我有这个表格.. 有2个字段。 “Youtube”和“链接”如果您已填写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(),如果没有链接。 所以我做到了这一点:
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>";
}
}
但是,如果我想检查相反的情况,如果在LINK中有什么东西,在youtube中没有什么呢? 如果我想检查这两个中是否一点都没有?
答案 0 :(得分:19)
if(!empty($youtube) && empty($link)) {
}
else if(empty($youtube) && !empty($link)) {
}
else if(empty($youtube) && empty($link)) {
}
答案 1 :(得分:8)
这是在所有四种情况下做一些不同的紧凑方式:
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' );
答案 2 :(得分:3)
对于某些情况,甚至只是涉及很多标准的少数情况,请考虑使用开关。
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;
}
}
如果您有多个案例需要相同的操作,您可以堆叠它们并省略中断;流通。或许可以发表评论,例如/ *流经* /所以你明确表示有意这样做。
请注意,案例周围的{}不是必需的,但它们对于可读性和代码折叠非常有用。
有关切换的更多信息:http://php.net/manual/en/control-structures.switch.php