php: boş / boş / null değere sahip bir alanı kontrol etmek için nasıl?

4 Cevap php

Bazı değişkenler boş bir değer veya boş veya null değeri (biz demek ne olursa olsun) varsa bir hata görüntülemek istiyorsanız, değişken aşağıda gösterilmiştir:

 $mo=strtotime($_POST['MondayOpen']);
 where var_dump($_POST['MondayOpen']) return string(0) "".

Şimdi aşağıda çözmek istiyorum:

  1. Önce tüm i $ mo değişkenin hangi tip (dize veya tam sayı veya değişken diğer tip) olduğunu bilmek istiyorum

  2. hangi fonksiyon bu $ mo hiçbir değeri var bulmak için iyidir

I $mo ile bir testi yapıyoruz ve ben bu sonuçlar var

is_int($mo);//--Return nothing
is_string($mo); //--Return bool(false) 
var_dump($mo);  //--Return bool(true)                   
var_dump(empty($mo));//--Return bool(true) 
var_dump($mo==NULL);//--Return bool(true) 
var_dump($mo=='');//--Return nothing

4 Cevap

Bir zaman damgası dönüştürmek olamaz eğer strtotime yaptığını false dönecektir.

$mo = strtotime($_POST['MondayOpen']);
if ($mo !== false)
{
//valid date was passed in  and $mo is type int
}
else
{
//invalid date let the user know
}

PHP ise kontrol etmek için bir işlev değişken NULL ve empty değilse isset kontrol sunuyor bir değişken boştur.

Türü dönmek için, PHP işlevi gettype kullanabilirsiniz

if (!isset($mo) || is_empty($mo)) {
 // $mo is either NULL or empty.
 // display error message
 }

hata ayıklama amacıyla var_dump çıktı değişkenleri, normal bir kod değerini kontrol etmek için kullanılmaz. PHP gevşek Eğer emin biridir yapmak gerekiyorsa bunu döküm, ya da kontrol etmek için is_ işlevleri kullanabilirsiniz rağmen değişken bir dize ya da bir int ise çoğu zaman önemli değil, yazılır.

Şey boş olup olmadığını test etmek için:

if ( empty( $mo ) ) {
  // error
}

Bir değişken, null false veya boş dize, 0 ise boş () true döndürür.

Bunu kullanarak türünü kontrol edebilirsiniz:

gettype($mo);

ama null ve empty farklı şeylerdir, bu fonksiyonları ile kontrol edebilirsiniz:

if (empty($mo))
{
  // it is empty
}

if (is_null($mo))
{
  // it is null
}

Değişkeni ayarlanır olup olmadığını kontrol etmek için başka bir yolu isset yapıyı kullanmaktır.

if (isset($mo))
{
  // variable has been set
}