我有以下代码:
var_dump($attr['value']);
if ($attr['value'] != 0 && $attr['value'] != null) {
echo $attr['value'];
$i++;
}
问题是转储告诉我$ attr ['value']是8个字符长的字符串但是if条件失败并且代码没有向我显示if块中$ attr ['value']的值。条件错了吗?我不想检查字符串的长度,有时它也可能是1个字符长的字符串。
答案 0 :(得分:1)
这个条件:
if ($attr['value'] != 0)
验证$ attr ['value'] CONTAINS 0,这不是字符串的长度。
如果要验证字符串长度,请将代码修改为:
var_dump($attr['value']);
if (strlen($attr['value']) != 0 && $attr['value'] != null)
{
echo $attr['value'];
$i++;
}
strlen($ variable)将验证字符串的长度:
http://php.net/manual/fr/function.strlen.php
您似乎只是在检查变量是否已设置,在这种情况下,您可以将代码简化为:
var_dump($attr['value']);
if ($attr['value'])
{
echo $attr['value'];
$i++;
}
答案 1 :(得分:0)
尝试
if(!empty($attr['value'])){
答案 2 :(得分:0)
请注意,除非您使用0
运算符,否则与整数比较时,任何非数字字符串都将转换为===
。
试试这个:
var_dump('a' == 0); // true
var_dump('a' === 0); // false
您要搜索的解决方案是:
if(isset($attr['value']) && !empty($attr['value'])) ...