• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:if (isset($_a)&&$_a)この意味は)

理解できないPHPのコードについての質問

このQ&Aのポイント
  • PHP講座の第19回では、スケジューラーを作成する方法について解説しています。
  • サンプルコードには、$_POST['title']の値が存在するかどうかと、その値がnullでないかをチェックしています。
  • しかし、その後の&& $_POST['title']は、どのような意味を持っているのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • 1minn
  • ベストアンサー率57% (52/90)
回答No.1

参考サイトは長いので見てないです。 最初のissetはおっしゃるとおり。 二つ目はtrue/falseの判定とか? POST値だからbool値ではないでしょうね・・・ たぶん入力データがあるかどうかをチェックしたいって感じだと思うので私なら if (isset($_POST["title"]) && strlen($_POST["title"])>0) { って書きます。 issetだと空文字もOKなので、それを弾くためでしょうね。 if ( $str ) { って書き方は便利ですが、何のデータでも同じ変数に入ってしまうPHPでは、バグの温床にもなるので型が可変である可能性がある変数に対しては私は使わないです。

kiseki777
質問者

お礼

if (isset($_POST["title"]) && !$_POST["title"]="") { でもOKということですか。でも、 if (isset($_POST["title"]) && strlen($_POST["title"])>0) { こちらの方がシャキっとしてますね。 strlenをメモしておきます。有難うございました。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>!$_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>";

kiseki777
質問者

お礼

ありがとうございます。 参考になりました。

関連するQ&A