0

我有以下代码:

var_dump($attr['value']);
if ($attr['value'] != 0 && $attr['value'] != null) {
    echo $attr['value'];
    $i++;
}

问题是转储告诉我 $attr['value'] 是 8 个字符长的字符串,但是 if 条件失败并且代码没有显示 if 块内 $attr['value'] 的值。是不是条件不对?我不想检查字符串的长度,因为有时它也可以是 1 个字符的长字符串。

4

3 回答 3

1

这种情况:

if ($attr['value'] != 0)

验证 $attr['value']是否包含 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++;
}
于 2013-07-16T21:26:30.367 回答
0

尝试

if(!empty($attr['value'])){
于 2013-07-16T21:25:49.577 回答
0

0请注意,除非您使用运算符,否则与整数相比,任何非数字字符串都将转换为===

尝试这个:

var_dump('a' == 0);   // true
var_dump('a' === 0);  // false

您正在寻找的解决方案是:

if(isset($attr['value']) && !empty($attr['value'])) ...
于 2013-07-16T21:26:14.083 回答