if(変数)とif(!empty(変数))の違いを教えてください!!!!!!!
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
注意:
$xが定義されていない状態で単に if ($x)としてしまうとE_NOTICE レベルのエラーが発行てしまいます。代わりに、empty()や isset()を使うかあるいは変数を初期化するように してください。
この辺ですかね。
投稿2017/10/07 14:30
退会済みユーザー
総合スコア0
0
ベストアンサー
質問文の意味を取り違えてるかもしれませんが、前者は変数が未定義の場合にNoticeレベルのエラーを出力します。また、!empty($var)
はisset($var) && $var
と等価です。
PHP
1<?php 2$var1 = "var"; 3 4var_dump(($var1) ? true : false); 5var_dump(($var2) ? true : false); // Notice: Undefined variable: var2 6var_dump(isset($var1) && $var1 ? true : false); 7var_dump(isset($var2) && $var2 ? true : false); 8var_dump(!empty($var1) ? true : false); 9var_dump(!empty($var2) ? true : false);
投稿2017/10/07 14:29
編集2017/10/07 14:32総合スコア14731
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
if(変数)は好きな評価ができます。
php
1if ( $a === 0 ){} 2if ( $a !== 0 ){} 3if ( $a === '' ){} 4if ( $a !== '' ){} 5if ( $a > 0 ){} 6if ( $a < 0 ){} 7if ( $a === 'aaaa' ){}
しかし、if(!empty(変数))は、その変数がempty(空っぽ)かどうかしか見ることができません。
それでもって「!」マークがついているので反対を意味します。
php
1$karappo = ''; 2$nakamiga_aruyo = 'nakami'; 3 4if ( !empty($karappo) ){} # if文の中に入らない 5if ( !empty($nakamiga_aruyo) ){} # if文の中に入る
ここで蛇足ですが、empty関数は若干面倒な挙動をします。
php
1$karappo = ''; 2$nakamiga_aruyo = 'nakami'; 3 4if ( empty($karappo) ){} # if文の中に入る 5if ( empty($nakamiga_aruyo) ){} # if文の中に入らない 6 7# 変数の中身が0のとき 8$nakamiga_aruyo = 0; 9if ( empty($nakamiga_aruyo) ){} # if文の中に入っちゃう 10 11 12# 変数の中身がnullのとき 13$nakamiga_aruyo = null; 14if ( empty($nakamiga_aruyo) ){} # if文の中に入っちゃう 15
これはなかなかに陥ります。
気をつける点ですね。
投稿2017/10/07 14:28
総合スコア2004
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
例えば、変数が "0" や 空の配列の場合の挙動は以下のようになります。
- if(変数) は true
- if(empty(変数)) は true
- if(!empty(変数)) は false
詳しいことは公式マニュアルを読みましょう。
http://php.net/manual/ja/function.empty.php
投稿2017/10/07 14:35
総合スコア128
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。