我发现在比较类型时,php很敏感,特别是在0时,因为它被认为是假的,因此(我认为)是空的。
包含0的变量是否为空?
我在php中编写了一个带有stdClass的类,并且能够以不同的方式操作它,如编辑,复制数组,删除等。我不知道stdClass是如何组成的。在类中,我有一个方法,它将地址带到stdClass中的属性,并将属性值更改为新值,并且必须将属性值与末尾的新值进行比较。用户通过选择数组键在浏览器中输入或选择大多数值。密钥可以是数字或文本。
在我的方法中:
if (empty($address) || empty($new_value)){
$this->last_error = "Unknown error";
return false;
}
当值为0时,empty($ new_value)不起作用。在这种情况下,0是数组键。有没有办法让这项工作适用于所有可能的情况。
在最后的某个地方,我有:
if ($new_value==$this->get_property ($address)) { return true; } else { return false; }
我认为php看到的是:if(0 == 0){}这是真的吗?
当属性设置为零时,这不起作用。