- ベストアンサー
理解できないPHPのコードについての質問
- PHP講座の第19回では、スケジューラーを作成する方法について解説しています。
- サンプルコードには、$_POST['title']の値が存在するかどうかと、その値がnullでないかをチェックしています。
- しかし、その後の&& $_POST['title']は、どのような意味を持っているのでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
参考サイトは長いので見てないです。 最初のissetはおっしゃるとおり。 二つ目はtrue/falseの判定とか? POST値だからbool値ではないでしょうね・・・ たぶん入力データがあるかどうかをチェックしたいって感じだと思うので私なら if (isset($_POST["title"]) && strlen($_POST["title"])>0) { って書きます。 issetだと空文字もOKなので、それを弾くためでしょうね。 if ( $str ) { って書き方は便利ですが、何のデータでも同じ変数に入ってしまうPHPでは、バグの温床にもなるので型が可変である可能性がある変数に対しては私は使わないです。
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
>!$_POST["title"]="" これは文法的にだめですね $_POST["hoge"]の評価をするときは気をつけないといけません 一般に「空」であるというものがいろいろ定義されています。 条件によって微妙に挙動がちがいますので、 一度よく検証してみるとよいでしょう $a=0;//$a="0",$a=null,$a=false,$a="",$a=array()でヒットするものがことなる; if(!isset($a)) print "not set<br>"; if(is_null($a)) print "null<br>"; if(empty($a)) print "empty<br>"; if($a=="") print "==\"\"<br>"; if($a==="") print "===\"\"<br>"; if($a=="0") print "==\"0\"<br>"; if($a==="0") print "===\"0\"<br>"; if($a==0) print "==0<br>"; if($a===0) print "===0<br>"; if($a==false) print "==false<br>"; if($a===false) print "===false<br>"; if(is_array($a) and count($a)===0) print "空配列<br>";
お礼
ありがとうございます。 参考になりました。
お礼
if (isset($_POST["title"]) && !$_POST["title"]="") { でもOKということですか。でも、 if (isset($_POST["title"]) && strlen($_POST["title"])>0) { こちらの方がシャキっとしてますね。 strlenをメモしておきます。有難うございました。