幼稚園時代「何組」でしたか?

if(isset($_POST['title'])&&(isset($_POST['check']) == 1)){
print "条件に合ってる。";}

と、したいのですがうまくできません。なぜ?

if(isset($_POST['title']){
 if((isset($_POST['check']){print "条件に合ってる。";}}

と多重にすれば問題ないのですが、issetを丸ごと()で囲っても同じでした。なぜ?

A 回答 (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 の場合」
と、なると思います。
    • good
    • 1

テストした自分の環境ではうまく行くようです(PHP5.0.4 PHP4.3.11)


if(isset($_POST['title'])&&isset($_POST['check']))

if(isset($_POST['title'])&&(isset($_POST['check']) == true))
ではどうなのでしょうか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!