- ベストアンサー
if文の複数条件。
if(isset($_POST['title'])&&(isset($_POST['check']) == 1)){ print "条件に合ってる。";} と、したいのですがうまくできません。なぜ? if(isset($_POST['title']){ if((isset($_POST['check']){print "条件に合ってる。";}} と多重にすれば問題ないのですが、issetを丸ごと()で囲っても同じでした。なぜ?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 isset($_POST['title']) && (isset($_POST['check']) == 1 この条件式を訳(?)すと、 「$_POST['title']という変数が存在し、なおかつ isset($_POST['check'])の『戻り値が 1 』の場合」 と、なると思います。 ところが、「isset関数」の戻り値は「TRUE」か「FALSE」です。 よって、 isset($_POST['title']) && (isset($_POST['check']) == TRUE にすると希望通りの条件を満たしてくれると思います。 また、PHPは変数に関して非常に柔軟な言語なので、以下のような感じで十分だと思います。 if ($_POST['title'] != null && $_POST['check'] == 1){ print '条件に合ってる'; } この場合は、 「$_POST['title']に何らかの値がセットされていて、なおかつ、$_POST['check']の値が 1 の場合」 と、なると思います。
その他の回答 (1)
- carroll
- ベストアンサー率61% (13/21)
テストした自分の環境ではうまく行くようです(PHP5.0.4 PHP4.3.11) if(isset($_POST['title'])&&isset($_POST['check'])) や if(isset($_POST['title'])&&(isset($_POST['check']) == true)) ではどうなのでしょうか。