12

だから私はこのフォームを持っています..2つのフィールドがあります。「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()もチェックしたいと思います。だからiveはこれをしました:

    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に何もない場合はどうなりますか?そして、私がそれらの2つにまったく何もないかどうかを確認したい場合はどうなりますか?

4

3 に答える 3

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

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

}
else if(empty($youtube) && empty($link)) {
}
于 2010-02-27T11:00:08.650 に答える
8

4つのケースすべてで何か違うことを行うコンパクトな方法を次に示します。

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' );
于 2010-02-27T11:20:21.040 に答える
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;
    }

}

同じアクションが必要なケースが複数ある場合は、それらを積み重ねてブレークを省略できます。フロースルーへ。/*Flowing through*/ のようなコメントを入れて、意図的にそれを行うことを明確にします。

ケースを囲む { } は必須ではありませんが、読みやすさとコードの折り畳みに適していることに注意してください。

スイッチの詳細: http://php.net/manual/en/control-structures.switch.php

于 2013-01-25T09:40:57.957 に答える