1

ばかげた質問かもしれませんが、正直な答えを見つけることができないようです。

$id != ""と同じですか!empty($id)

if(isset($id) && !empty($id))また、変数が設定されていて空/nullではないかどうかを判断するために使用するのは正しいですか?

4

5 に答える 5

6

No. empty()は、空の文字列以外の多くの条件をカバーしています。 http://php.net/manual/en/function.empty.php ドキュメントから:

  • ""(空の文字列)
  • 0(0 は整数)
  • 0.0(浮動小数点として 0)
  • "0"(文字列として 0)
  • NULL
  • FALSE
  • array()(空の配列)
  • $var;(変数は宣言されていますが、値はありません)

また、変数が「空」かどうかを知りたい場合empty()は、必要です。も必要ありませんisset()

于 2013-06-10T00:55:32.707 に答える
2

ふむ:一言で言えば、

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)
?>
于 2013-06-10T00:57:17.710 に答える
1

empty未定義の変数に対して true を返すだけなので、再確認する必要はありません。

使うだけif ( ! empty($id) )

于 2013-06-10T00:55:19.560 に答える
1

$id != "" は !empty($id) と同じですか?

いいえ、empty空のすべての形式をテストします。0したがって、またはでもトリガーされnullます。を使用して空の文字列と比較すると、!=の文字列変換に基づいて比較が実行されます$id

また、 if(isset($id) && !empty($id)) を使用して、変数が設定されていて空/nullではないかどうかを判断するのは正しいですか?

そうではありませんが、この条件は、が設定されていないかどうかをテストするだけで$id、空の文字列、 string "0"、整数/浮動小数点値、またはboolean などの0整数に変換されるものは含まれていません。0false

PHP.netには、考慮される値のかなり網羅的なリストがありますempty

于 2013-06-10T00:56:37.983 に答える
0

まず、 no$id != ""は と同じではありません!empty($id)。違いは、$id が設定されていない場合、最初の例では未定義の変数を使用しているという通知が表示され、2 番目の例では表示されないことです。

第二に、 isset() と empty() の両方を使用する場合は正しいですが、変数が未定義の場合、空は通知をスローしないため、冗長です。

お役に立てば幸いです。

幸運と幸せなコーディング:P

于 2013-06-10T00:56:14.653 に答える