Dize "0" ya da onun gibi bir şey ise PHP boş () yerli başarısız olur.
Peki nasıl PHP tam is_empty () işlevi uygulamak için?
Bu deneyin:
function is_empty(&$val) {
return empty($val) && $val !== "0";
}
&$val
gereklidir, böylece tanımsız değişkenler üzerinde bir uyarı alamadım.
Yalnızca bir değişken (bağımsız değerinin) ayarlanmış olup olmadığını kontrol etmek istiyorsanız kullanmanız gereken PHP'nin isset
a>
) (Boş tam davranışı için PHP kılavuzda type comparison table check out, isset (), vb is_null () Muhtemelen orada aradığınızı bulabilirsiniz.
Ben her zaman benim kod temeli ekle
function is_blank($value) {
return empty($value) && !is_numeric($value);
}
ve) (boş yerine kullanabilirsiniz. Bu non-boş olarak sıfır (int, float veya string) tutmanın sorunu çözer.
http://www.php.net/manual/en/function.empty.php#103756 hangi Mayıs 2011 eklendi bakın.
Bunun için, benim çözüm:
/**
* Checks if a scalar value is FALSE, without content or only full of
* whitespaces.
* For non-scalar values will evaluate if value is empty().
*
* @param mixed $v to test
* @return bool if $v is blank
*/
function is_blank (&$v)
{
return !isset($v) || (is_scalar($v) ? (trim($v) === '') : empty($v));
}
http://3960.org/sandbox/empty.php davranışı için bkz. Esasen tüm değerler) (boş ile aynı döndü, ama dizeleri ve '0 değerlendirmek numaralar için 'olacak.