お世話になっております。
単純なif文の条件分岐なのですが、何故か思い通りに動いてくれません。
教本やネットで調べて、色々試したのですが上手くいかず。
ご助言をいただけると助かります。
またシンプルな記述等あれば教えていただけると幸いです。
状況
変数3つ
$a,$b,$cの代入された値に応じて分岐をしたいと思っています。
それぞれの変数には以下の様に値が入ります。
$a = 0以上の数字、もしくはallという文字列
$b = 0以上の数字、もしくはallという文字列
$c = 文字列、もしくはallという文字列
以下、2つのコードを試したのですが、上手く分岐しませんでした。
PHP
1if (($a >= 0) && ($b >= 0) && ($c != 'all')) { 2 echo "int, int, not all"; 3} elseif (($a >= 0) && ($b == 'all') && ($c == 'all')) { 4 echo "int, all, all"; 5} elseif (($a == 'all') && ($b >= 0) && ($c == 'all')) { 6 echo "all, int, all"; 7} elseif (($a == 'all') && ($b == 'all') && ($c != 'all')) { 8 echo "all, all, not all"; 9} elseif (($a >= 0) && ($b >= 0) && ($c == 'all')) { 10 echo "int, int, all"; 11} elseif (($a >= 0) && ($b == 'all') && ($c != 'all')) { 12 echo "int, all, not all"; 13} elseif (($a == 'all') && ($b >= 0) && ($c != 'all')) { 14 echo "all, int, not all"; 15} elseif (($a == 'all') && ($b == 'all') && ($c == 'all')) { 16 echo "all, all, all"; 17}
このコードだと$cの値が正常に分岐しれくれません。
PHP
1if (($a == 'all') && ($b == 'all')) { 2 if ($c == 'all') { 3 echo "all, all, all"; 4 } else { 5 echo "all, all, not all"; 6 } 7} elseif (($a >= 0) && ($b >= 0)) { 8 if ($c == 'all') { 9 echo "int, int, all"; 10 } else { 11 echo "int, int, not all"; 12 } 13} elseif (($a >= 0) && ($b == 'all')) { 14 if ($c == 'all') { 15 echo "int, all, all"; 16 } else { 17 echo "int, all, not all"; 18 } 19} elseif (($a == 'all') && ($b >= 0)) { 20 if ($c == 'all') { 21 echo "all, int, all"; 22 } else { 23 echo "all, int, not all"; 24 } 25}
こちらのコードだと、$bの値が分岐してくれないという状況です。
最初はswitchで書くのが短く綺麗になるかと考えたのですが、
書き方が思いつかず、if文の力技で書いた次第です。
私がそもそもこの記述が間違ってるかどうか、あまり判断がついていないレベルで、
教本やネットの記述を真似て必要に応じ書き換えて試したのですが、
どうも解決に至らないので、お力添えをよろしくお願いいたします。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/29 11:27