if (isset($_POST["body"]) && $_POST["body"])の中の&& $_POST["body"]って必要ですか?
PHPのプログラムを読んでいて、以下のような部分を見つけました
if (isset($_POST["body"]) && $_POST["body"])
しかし、どうせisset($_POST["body"])でnullかどうか、値が入っているかどうかを確めているので、&& $_POST["body"]の部分は必要ないように思います。なぜこのような書き方をしているのでしょうか?
No.1ベストアンサー
- 回答日時:
isset($_POST["body"])では値が入っているかどうかを調べていますが、値が何であるかは問いません。
その値を判定しているのが二つ目の式です。PHPの論理判定では値が0の時に偽になり、それ以外の時は真になります。つまり、$_POST["body"]の値が0かどうかを判定しています。($_POST["body"] != 0)と同じです。
判定式全体では、$_POST["body"]に0以外の値が入っている時に真になり、値が入っていないか0の時に偽になります。
No.3
- 回答日時:
もし未定義の変数(メモリ上に確保されていない)を直接if文で評価したら
設定によっては警告がでてしまいます。
そこで関数ではない言語構造であるisset()やempty()で評価することで警告を回避できます。
if ($foo) ←これは未定義なので警告を出す
$foo = null; // null値を含むなんらかの値を代入すると定義(メモリ確保)された状態になる
if ($foo) ←これで警告を出さなくなる
No.2
- 回答日時:
isset() は、変数がセットされていること、そして NULL でないことを検査します。
http://jp.php.net/manual/ja/function.isset.php
ここで言うところの NULL とは、PHPの定数 NULL です。
http://jp.php.net/manual/ja/language.types.null. …
例えば、$_POST['body'] の内容が空文字であったとしても、isset() は TRUE となってしまうでしょう。
そこで変数が空であるかどうかを検査する必要があるのですが、これには empty() を使います。
http://jp.php.net/manual/ja/function.empty.php
変数がセットされており、値が空ではないことを確認したい場合、以下のように記述することをお勧めします。
if (isset($_POST['body']) and !empty($_POST['body'])) { /* 変数に対する処理を記述 */ }
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP php ログイン 1 2022/11/01 00:24
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
掲示板を作成しておりアップロ...
-
PHPのエラーの解消法について教...
-
phpでcookieがうまく保存されない
-
ワードプレスサイト PHP8.0.25...
-
PHP MySql 画像を取得
-
PHPで画像の渡しが上手く行きま...
-
phpの imap_search で漢字コード
-
a href リンクタグでだけで 送...
-
【PHP/MySQL】コード上で生成...
-
phpのheader("Location:#pos")...
-
アマゾンのような評価の星を選...
-
PHP8を使うと、大量のWarningが...
-
SFTPなどは使わないホームペー...
-
ファイルアップロードに関して...
-
Q&Aサイトを作成していてURLの...
-
アップロード画像数でCSSを分け...
-
アップロードファイルの数に応...
-
ファイルアップロードの上限を...
-
メールフォームのタイトルが文...
-
PHPのセッション有効期限について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
『PHP』 MAMPで$_SERVER["REMOT...
-
(int)キャストとintvalの違い
-
請求書等のシリアル番号生成方法?
-
角度を求めるプログラム
-
マイコンビルドエラー修正方法...
-
DBのFLOATカラムに格納した値の...
-
if (isset($_POST["body"]) && ...
-
arduinoで.textを読み込む
-
複数選択した場合のチェックボ...
-
サイトに表示する文字に\\が入...
-
不明なコマンドです("FROM")。...
-
Access2010 「演算子がありませ...
-
【ExcelVBA】sheet作成時にマク...
-
エクセル/マクロ Exit Subが実...
-
オペランドが足りませんとコメ...
-
mfc42.dllファイルってなんです...
-
pythonでrequestsが使えない
-
エクセルの文字間スペースを入...
-
Excel2010でふりがなが漢字にな...
-
フェイス・シートについて教え...
おすすめ情報