php - 使用比较或 || 输出字符串不是布尔值 操作员
问题描述
在 JavaScript 中,我使用比较“或”运算符 || 检查结果是否存在。如果没有,请打印其他内容,例如:
console.log( '' || 'Yes' ); // Yes
在上面的代码片段中,打印了“是”。
然而,在 PHP 中,行为是不同的,例如:
<?php
echo '' || 'Yes'; // 1
?>
PHP 解析布尔语句并将其评估为 1(真),而不是打印“是”。
在 PHP 中,如何在不使用三元运算符的情况下实现与 JavaScript 相同的行为。
解决方案
您可以使用三元运算符的简写版本(即使它不再是三元运算符:))。
如果条件为真,它将评估其第一个操作数,如果不是,则回退到正确的操作数:
echo '' ?: 'Yes'; // Yes
演示(有几个例子):https ://3v4l.org/ZXRE5
有关哪些值被认为是虚假的(因此其他所有值都是真实的)的详细信息,请参阅手册中的此页面。
推荐阅读
- elasticsearch - “cluster_uuid”的 Elasticsearch 问题:“_na_”和许可为空
- pytorch - Pytorch 语义分割损失函数
- api - 是否可以获得按最佳匹配排序的多个结果?
- python - 关于 lambda 函数
- r - R 规则:如何将因素与交易联系起来?
- apache-kafka - java.io.IOException:无法将语句写入 batch_layer.test。最新的例外是 Key may not be empty
- latex - 在 Mediawiki 数学扩展中设置处理 unicode
- python - 如何用多个连续的 Conv2D 层替换 keras 中的 Conv2D 层?
- c# - 虚幻 4:让 Windows 插件在 Linux 上运行
- javascript - Vuetify v-btn :href 下载在浏览器中打开 XML 而不是下载