Kod daha açıklayacağız:
$var = 0;
if (!empty($var)){
echo "Its not empty";
} else {
echo "Its empty";
}
Sonuç "Onun boş" döndürür. Ben zaten içeride değer değişkeni ayarlamak ve varsa boş () kontrol edecektir düşündüm. Neden "Onun boş" verir?
Aşağıdakiler boş olarak kabul edilir:
- "" (Boş dize)
- 0 (bir tamsayı olarak 0)
- "0" (bir dizge olarak 0)
- NULL
- YANLIŞ
- array () (boş bir dizi)
- var $ var; (Değişken bildirilmiş, ancak bir sınıfta bir değeri olmayan)
Bu Boole bir zorlama için tam olarak aynı liste olduğunu unutmayın false
. empty
basitçe !isset($var) || !$var
. isset
a> yerine deneyin.
Kimse önerdi, neden ben merak ediyorum, son derece kullanışlı Type comparison table. Bu ortak işlevleri ve karşılaştırma operatörleri ile ilgili her soruyu yanıtlar.
A pasajı:
Expression | empty()
----------------+--------
$x = ""; | true
$x = null | true
var $x; | true
$x is undefined | true
$x = array(); | true
$x = false; | true
$x = true; | false
$x = 1; | false
$x = 42; | false
$x = 0; | true
$x = -1; | false
$x = "1"; | false
$x = "0"; | true
$x = "-1"; | false
$x = "php"; | false
$x = "true"; | false
$x = "false"; | false
Diğer cheatsheets boyunca, ben hep durumda ben emin değilim masamda bu tablonun bir basılı tutmak
From manual: Returns YANLIŞ if var has a non-empty and non-zero value.
Aşağıdakiler boş olarak kabul edilir:
Daha fazla: http://php.net/manual/en/function.empty.php
Aşağıdakiler boş olarak kabul edilir:
Dan PHP Manual
Senin durumunda $var
böylece empty($var)
, bunu test etmeden önce sonucu inkâr edilir true
dönecektir, 0
, bu nedenle başka bir blok çıkışı olarak "Its empty
" vererek çalışacaktır.
empty()
returns true for everything that evaluates to FALSE
, aslında bir 'değil' (!
) kılık değiştirmiş olduğunu. Ne demek düşünüyorum isset()
a>
Aslında sadece değişken setleri ya da eğer bu durumda not.In sizin değişken gerçekten sıfır olup olmadığını kontrol edin ya da bu örneği kullanabilirsiniz boşaltmak istiyorsanız lütfen kontrol isset:
$myVar = '';
if (empty($myVar))
{
echo "Its empty";
}
echo "<br/>";
if ($myVar===0)
{
echo "also zero!";
}
sadece boş fonksiyonu gibi ihbar $ myVar == 0 hareket için.