Проверка, если строка пуста - PullRequest
198 голосов
/ 05 апреля 2009

У меня есть функция isNotEmpty, которая возвращает true, если строка не пустая, и false, если строка пустая. Я обнаружил, что это не работает, если я пропущу через него пустую строку.

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

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

    return false;
}

Проверка строки с использованием isNotEmpty выполнена:

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

Если строка пустая, а остальное не выполняется, я не понимаю почему, может кто-нибудь, пожалуйста, пролить свет на это, пожалуйста.

Ответы [ 16 ]

0 голосов
/ 22 июля 2018

Я знаю, что эта тема была довольно старой, но я просто хотел поделиться одной из моих функций. Эта функция ниже может проверять наличие пустых строк, строк с максимальной длиной, минимальной длины или точной длины. Если вы хотите проверить наличие пустых строк, просто укажите $ min_len и $ max_len как 0.

function chk_str( $input, $min_len = null, $max_len = null ){

    if ( !is_int($min_len) && $min_len !== null ) throw new Exception('chk_str(): $min_len must be an integer or a null value.');
    if ( !is_int($max_len) && $max_len !== null ) throw new Exception('chk_str(): $max_len must be an integer or a null value.'); 

    if ( $min_len !== null && $max_len !== null ){
         if ( $min_len > $max_len ) throw new Exception('chk_str(): $min_len can\'t be larger than $max_len.');
    }

    if ( !is_string( $input ) ) {
        return false;
    } else {
        $output = true;
    }

    if ( $min_len !== null ){
        if ( strlen($input) < $min_len ) $output = false;
    }

    if ( $max_len !== null ){
        if ( strlen($input) > $max_len ) $output = false;
    }

    return $output;
}
0 голосов
/ 20 июня 2018

Вы можете просто привести к bool

(bool)$string;

или

function isEmpty(string $string): bool {
   return (bool)$string;
}
0 голосов
/ 29 марта 2015

это короткое и эффективное решение, именно то, что вы ищете:

return $input > null ? 'not empty' : 'empty' ;
0 голосов
/ 23 декабря 2014

Вы получили ответ, но в вашем случае вы можете использовать

return empty($input);

или

return is_string($input);
0 голосов
/ 21 февраля 2013

, если у вас есть поле, а именно serial_number и вы хотите проверить пустое значение,

$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'];
}

таким образом вы можете проверить все поля в цикле с помощью другой пустой функции

0 голосов
/ 05 апреля 2009

может быть, вы можете попробовать это

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

это из-за конфигурации php в php.ini

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...