Dize boş olup olmadığını kontrol etme

7 Cevap php

Ben dize boşsa dize boş ve yanlış değilse true döndüren bir işlev isNotEmpty var. Ben bunun üzerinden bir boş bir dize geçirmek eğer çalışma olmadığını öğrendim.

function isNotEmpty($input) 
{
    $strTemp = $input;
    $strTemp = trim($strTemp);

    if(strTemp != '') //Also tried this "if(strlen($strTemp) > 0)"
    {
         return true;
    }

    return false;
}

IsNotEmpty kullanarak dize doğrulama yapılır:

if(isNotEmpty($userinput['phoneNumber']))
{
    //validate the phone number
}
else
{
    echo "Phone number not entered<br/>";
}

Dize başka yürütmek değil boşsa, ben neden kimse bu ışık döken, lütfen, lütfen olabilir anlamıyorum.

7 Cevap

Basit bir problem aslında. Değiştir:

if(strTemp != '')

karşı

if($strTemp != '')

Arguably you may also want karşıchange it to:

if($strTemp !== '')

since != '' will return true if you pass is numeric 0 and a few other cases due karşıPHP's automatic type conversion.

Ayrıca zihin PHP ayı zaten empty() işlevi vardır.

PHP false boş bir dize değerlendirir, böylece sadece kullanabilirsiniz:

if (trim($userinput['phoneNumber'])) {
  // validate the phone number
} else {
  echo "Phone number not entered<br/>";
}

Ben her zaman, boş bir dize için kontrol geri CGI / Perl günlerinden kalma, hem de JavaScript ile düzenli bir ifade kullanmak, neden PHP ile de, örneğin (Denenmemiş olsa)

return preg_match('/\S/', $input);

\ S herhangi boşluk olmayan bir karakteri temsil eder nerede

Cebinize işlevi fıkra varsa, var olmayan bir değişken 'strTemp' başvuruyorsunuz. '$ StrTemp' olsa da, var yok.

Ama PHP zaten neden kendi yapmak, boş () fonksiyonu kullanılabilir var mı?

if (empty($str))
    /* String is empty */
else
    /* Not empty */

Php.net Gönderen:

Değerler Dönüş

Returns FALSE if var has a non-empty and non-zero value.

The following things are considered to be empty:

* "" (an empty string)
* 0 (0 as an integer)
* "0" (0 as a string)
* NULL
* FALSE
* array() (an empty array)
* var $var; (a variable declared, but without a value in a class)

http://www.php.net/empty

Peki, yerine bir cevap (Ben zaten sorun sabit inanıyorum), sana bir tavsiyede sunarız.

Ben tüm diğerleri hakkında bilmiyorum, ama ben şahsen böyle bir şey görünce çok rahatsız olsun:

if(<<condition>>)
    {
         return true;
    }

    return false;

Bu zarif "return (<<condition>>);" çözüm için çağırır. Her zaman koduna bir göz atın ve mantık bu tür kaldırın. Sen every durum için bir IF deyimi gerekmez.

belki bu deneyebilirsiniz

if(isNotEmpty($userinput['phoneNumber']) == true)

çünkü php.ini içinde php yapılandırma bulunuyor

Eğer bir alan yani seri_sayı ve sonra boş kontrol etmek istiyorsanız

$serial_number = trim($_POST[serial_number]);
$q="select * from product where user_id='$_SESSION[id]'";
$rs=mysql_query($q);
while($row=mysql_fetch_assoc($rs)){
if(empty($_POST['irons'])){
$irons=$row['product1'];
}

Bu şekilde başka boş fonksiyonu ile döngü içinde tüm fileds chek edebilirsiniz