Мне нужно проверить, является ли переданная переменная типом строки, и она не пуста. У меня есть следующие функции:PHP: Проверьте, является ли переменная типом строки И не является пустой строкой?
function isNonEmptyStr($var)
{
if(isset($var)) {
if(is_string($var)) {
if(strlen($var) > 0) {
return true;
}
}
}
return false;
}
результаты я ожидаю:
echo(isNonEmptyStr(''));// false
echo(isNonEmptyStr(' '));// true
echo(isNonEmptyStr('a'));// true
echo(isNonEmptyStr('1'));// true
echo(isNonEmptyStr(1));// false
echo(isNonEmptyStr(0));// false
echo(isNonEmptyStr(0.0));// false
echo(isNonEmptyStr(0.1));// false
echo(isNonEmptyStr(array()));// false
echo(isNonEmptyStr(new myObj()));// false
echo(isNonEmptyStr(true));// false
echo(isNonEmptyStr(false));// false
echo(isNonEmptyStr(null));// false
Функция работает отлично.
Мой вопрос: есть ли способ улучшить производительность функции без результата?
Я говорю о «микро оптимизации» (я использую эту функцию очень сильно).
EDIT:
Для тех, кто просит:
echo(isNonEmptyStr(0));// should return false, because it's not a string
echo(isNonEmptyStr(1));// should return false, because it's not a string
echo(isNonEmptyStr('0'));// should return true, because it's a non-empty string
echo(isNonEmptyStr('1'));// should return true, because it's a non-empty string
Примечание: непустая строка = строка, если тестирование с STRLEN функции() он вернется бы> 0
Вы можете избавиться, если 'isset()', поскольку он всегда задан определением вашей функции. –
Может просто использовать '! Empty ($ var)', если вы уже знаете его строку. – Flosculus
Если вы используете это для получения и публикации vars, они всегда будут строками. – AbraCadaver