ばかげた質問かもしれませんが、正直な答えを見つけることができないようです。
$id != ""
と同じですか!empty($id)
?
if(isset($id) && !empty($id))
また、変数が設定されていて空/nullではないかどうかを判断するために使用するのは正しいですか?
ばかげた質問かもしれませんが、正直な答えを見つけることができないようです。
$id != ""
と同じですか!empty($id)
?
if(isset($id) && !empty($id))
また、変数が設定されていて空/nullではないかどうかを判断するために使用するのは正しいですか?
No. empty()
は、空の文字列以外の多くの条件をカバーしています。 http://php.net/manual/en/function.empty.php ドキュメントから:
""
(空の文字列)0
(0 は整数)0.0
(浮動小数点として 0)"0"
(文字列として 0)NULL
FALSE
array()
(空の配列)$var;
(変数は宣言されていますが、値はありません)また、変数が「空」かどうかを知りたい場合empty()
は、必要です。も必要ありませんisset()
。
ふむ:一言で言えば、
if($var)
つまり、 TRUE の値であるか、 TRUE$var
の値を持っている場合、
反対に、値がFALSEif(!$var)
の場合を意味します$var
if(empty($var))
if(!empty($var))
同様に$var
、値があるかどうか、または空であるかどうかを確認しようとします。
$var = ''; // false
$var = '1' // true
$var; // empty
$var = '1' // not empty
詳細については、PHPマニュアルを参照してください。
いくつかの例は次のとおりです。
<?php
var_dump((bool) ""); // bool(false)
var_dump((bool) 1); // bool(true)
var_dump((bool) -2); // bool(true)
var_dump((bool) "foo"); // bool(true)
var_dump((bool) 2.3e5); // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array()); // bool(false)
var_dump((bool) "false"); // bool(true)
?>
empty
未定義の変数に対して true を返すだけなので、再確認する必要はありません。
使うだけif ( ! empty($id) )
$id != "" は !empty($id) と同じですか?
いいえ、empty
空のすべての形式をテストします。0
したがって、またはでもトリガーされnull
ます。を使用して空の文字列と比較すると、!=
の文字列変換に基づいて比較が実行されます$id
。
また、 if(isset($id) && !empty($id)) を使用して、変数が設定されていて空/nullではないかどうかを判断するのは正しいですか?
そうではありませんが、この条件は、が設定されていないかどうかをテストするだけで$id
、空の文字列、 string "0"
、整数/浮動小数点値、またはboolean などの0
整数に変換されるものは含まれていません。0
false
PHP.netには、考慮される値のかなり網羅的なリストがありますempty
。
まず、 no$id != ""
は と同じではありません!empty($id)
。違いは、$id が設定されていない場合、最初の例では未定義の変数を使用しているという通知が表示され、2 番目の例では表示されないことです。
第二に、 isset() と empty() の両方を使用する場合は正しいですが、変数が未定義の場合、空は通知をスローしないため、冗長です。
お役に立てば幸いです。
幸運と幸せなコーディング:P