让我们看看是否有人可以帮助我。
我有一个名为 ret_error() 的函数,当访问数据库中的表时出错时会调用它,这意味着"无法连接"、"找不到记录"等等。此函数返回一个包含两个键的数组,如下所示
array('error' => true, 'code' => Model::RECORD_NOT_FOUND);
如果我调用一个返回用 ret_error() 构建的数组的函数并检查数组,它就像
$result = array('error' => 1, 'code' => Model::RECORD_NOT_FOUND);
但是当我用"如果"进行评估时
if (!$result['error']) {
do something;
}
else {
do something else;
}
即使我投射到布尔值,也总是被评估为假。
如果计算为 int,例如
if ($result['error'] != 1) {
我错过了什么吗?
转换为布尔值时,以下值被视为 FALSE:
- 布尔值 FALSE 本身
- 整数 0(零)
- 浮点数 0.0(零)
- 空字符串和字符串"0"
- 包含零元素的数组
- 成员变量为零的对象(仅限 PHP 4)
- 特殊类型 NULL(包括未设置的变量)
- 从空标记创建的简单 XML 对象
简而言之,0 为 False,所有其他值为 True我建议快速破解
if($result['error'] === true || $result['error'] === 1) {
//logic
}