PHP is_empty () uygulamak nasıl?

6 Cevap

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?

6 Cevap

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

Eğer bu değişken tanımlı olup olmadığını kontrol etmek çalışıyorsanız isset kullanmak isteyebilirsiniz.

) (Boş tam davranışı için PHP kılavuzda type comparison table check out, isset (), vb is_null () Muhtemelen orada aradığınızı bulabilirsiniz.

Oldukça basit, yukarıda açıklanan hata durumunda kontrol edin. Bunu içine çalıştırırsanız, istediğiniz sonuca dönmek. Eğer değilse, boş () arayın ve bu sonuca dönmek.

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.