У меня есть функция 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/>"; }
Если строка пуста, else не выполняется, я не понимаю, почему, может кто-то пролить свет на это, пожалуйста.
Простая проблема. Изменить:
if(strTemp != '')
в
if($strTemp != '')
Возможно, вы также можете изменить его на:
if($strTemp !== '')
так как != ''
вернет true, если вы передадите числовое число 0 и несколько других случаев из-за автоматического преобразования типа PHP .
Также имейте в виду, что PHP уже имеет функцию empty () .
PHP имеет встроенную функцию, называемую empty()
Тест выполняется путем ввода if(empty($string)){...}
Ссылка php.net: php empty
Я всегда использую регулярное выражение для проверки пустой строки, относящейся ко дням CGI / Perl, а также к Javascript, поэтому почему бы и не PHP, например (хотя и непроверенный)
return preg_match('/\S/', $input);
Где \ S представляет любой символ без пробелов
PHP оценивает пустую строку на false, поэтому вы можете просто использовать:
if (trim($userinput['phoneNumber'])) { // validate the phone number } else { echo "Phone number not entered<br/>"; }
В вашем аргументе if в функции вы ссылаетесь на переменную strTemp, которая не существует. '$ strTemp' действительно существует.
Но у PHP уже есть пустая () – функция, доступная, зачем создавать свои собственные?
if (empty($str)) /* String is empty */ else /* Not empty */
От php.net:
Возвращаемые значения
Возвращает FALSE, если var имеет непустое и ненулевое значение.
Следующие вещи считаются пустыми:
* "" (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)
Просто используйте функцию strlen ()
if (strlen($s)) { // not empty }
Ну, вместо ответа (я считаю, что вы уже исправили свою проблему), я дам вам совет.
Я не знаю обо всех остальных, но лично меня очень раздражает при виде чего-то вроде:
if(<<condition>>) { return true; } return false;
это требует элегантного « return (<<condition>>);
». Пожалуйста, всегда смотрите на свой код и удаляйте эту логику. Для каждой ситуации вам не нужен оператор IF.
Ну вот короткий метод проверки, является ли строка пустой или нет.
$input; //Assuming to be the string if(strlen($input)==0){ return false;//if the string is empty } else{ return true; //if the string is not empty }
возможно, вы можете попробовать это
if(isNotEmpty($userinput['phoneNumber']) == true)
это из-за конфигурации php в php.ini
если у вас есть поле, а именно 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']; }
в$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']; }
таким образом, вы можете перебирать все петли в цикле с другой пустой функцией
У вас есть ответ, но в вашем случае вы можете использовать
return empty($input);
или
return is_string($input);
Я просто пишу свою собственную функцию is_string для проверки типов и strlen для проверки длины.
function emptyStr($str) { return is_string($str) && strlen($str) === 0; } print emptyStr('') ? "empty" : "not empty"; // empty
Вот небольшой тест repl.it
это короткое и эффективное решение, именно то, что вы ищете:
return $input > null ? 'not empty' : 'empty' ;