2022-09-27 01:42:11
在PHP中,当三元运算符的条件为假(false)时,会返回冒号后的“值2”。被PHP判定为false的值包括:布尔值false、整数0、浮点数0.0、空字符串""、字符串"0"、null、空数组[]以及未定义的变量(会触发警告但条件判断为false)。
具体判定规则与示例类型隐式转换问题:
数据库查询返回的字符串"0"可能被误判为false,需用===显式判断类型。
函数返回null或false时逻辑可能不符合预期,建议先做类型判断。
// 错误示例:字符串"0"被隐式转换为false$dbResult = "0";echo ($dbResult) ? '真' : '假'; // 输出:假(可能不符合预期)// 正确写法:显式判断类型echo ($dbResult === "0") ? '字符串0' : '其他值'; // 输出:字符串0未定义变量的处理:直接使用未定义变量会触发E_NOTICE警告,推荐用isset()预先检查。
// 不安全写法echo ($undefinedVar) ? '真' : '假'; // 触发Notice// 安全写法echo isset($undefinedVar) ? $undefinedVar : '默认值'; // 输出:默认值空合并运算符(PHP 7+):简化对null或未定义变量的处理,避免多层嵌套。
// 传统写法echo isset($user['status']) ? $user['status'] : '默认值';// 空合并运算符写法echo ($user['status'] ?? '默认值'); // 更简洁掌握PHP中false的判定规则,并注意类型转换陷阱,即可高效利用三元运算符处理各种边界情况。