首页 > 解决方案 > 使用比较或 || 输出字符串不是布尔值 操作员

问题描述

在 JavaScript 中,我使用比较“或”运算符 || 检查结果是否存在。如果没有,请打印其他内容,例如:

console.log( '' || 'Yes' ); // Yes

在上面的代码片段中,打印了“是”。

然而,在 PHP 中,行为是不同的,例如:

<?php

echo '' || 'Yes'; // 1

?>

PHP 解析布尔语句并将其评估为 1(真),而不是打印“是”。

在 PHP 中,如何在不使用三元运算符的情况下实现与 JavaScript 相同的行为。

标签: php

解决方案


您可以使用三元运算符的简写版本(即使它不再是三元运算符:))。

如果条件为真,它将评估其第一个操作数,如果不是,则回退到正确的操作数:

echo '' ?: 'Yes';  // Yes

演示(有几个例子):https ://3v4l.org/ZXRE5

有关哪些值被认为是虚假的(因此其他所有值都是真实的)的详细信息,请参阅手册中的此页面


推荐阅读