![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
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ランキング
-
PHPSpreadsheetを使って関数を...
-
ワードプレスプラグイン MW WP ...
-
ゆゆにゃ。
-
phpでcookieがうまく保存されない
-
csvファイルについて教えて下さ...
-
入力した部分を表示させたまま...
-
htmlで複数の個数入力欄を表示...
-
ここでの ②if($su_d<>"")の比較...
-
Postgresの特定のカラムからス...
-
PHP ページング データベース
-
PHPのセッション有効期限について
-
フォームで戻った際に入力済み...
-
【初心者】XAMPPのapacheの(恐...
-
phpでクラスのメソッドで同名の...
-
PHP8を使うと、大量のWarningが...
-
PHP MySQLに画像を直接保存
-
PHPでの時間の足し算、割り算
-
ファイルアップロードに関して...
-
メールフォームのタイトルが文...
-
重複を防ぐ記述について教えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
(int)キャストとintvalの違い
-
『PHP』 MAMPで$_SERVER["REMOT...
-
GETからPOSTに変更
-
請求書等のシリアル番号生成方法?
-
複数選択した場合のチェックボ...
-
角度を求めるプログラム
-
if (isset($_POST["body"]) && ...
-
不明なコマンドです("FROM")。...
-
Access2010 「演算子がありませ...
-
オペランドが足りませんとコメ...
-
【ExcelVBA】sheet作成時にマク...
-
エクセル/マクロ Exit Subが実...
-
mfc42.dllファイルってなんです...
-
VBA シートの切り替えができな...
-
エクセルの文字間スペースを入...
-
貼り付けをマクロで禁止させたい。
-
pythonでrequestsが使えない
-
エクセル 「実行時エラー"13":...
-
Excel2010でふりがなが漢字にな...
-
Access2007 DoCmd.ApplyFilter...
おすすめ情報