【发布时间】:2020-05-09 08:55:35
【问题描述】:
在 JavaScript 中,我可以做到:
console.log( 'a' || 'b' ); // Prints 'a'
在 PHP 中,等价于:
echo 'a' ?: 'b'; // Prints 'a'
在 JavaScript 中:
console.log( 'a' && 'b' ); // Prints 'b'
我的问题是,JavaScript 的 'a' && 'b' 的 PHP 等价物是什么?
如果我在 PHP 中执行以下操作:
echo 'a' && 'b'; // Prints 1
如您所见,它将类型转换为布尔值 1 (true)。
什么是 PHP 运算符,可以让我得到实际值,比如 JavaScript 的 &&?
附:我知道三元语句,请不要这么建议。
【问题讨论】:
-
如果你不想要三元,那么上面的方法在 PHP 中不起作用,那么这里没有选项。
-
您发布的 JavaScript 正在滥用 JavaScript 的类型杂耍功能,不应在生产代码中使用,因为“逻辑上”布尔运算符应计算为布尔值 - 事实上 JavaScript 携带原始值,同时假装它是布尔值是 JavaScript 独有的一个怪癖,在其他语言中基本上不存在。
-
PHP 中的逻辑运算总是返回布尔值,你不能在 PHP 中使用这个表达式有相同的行为,你必须通过代码来完成,使用
if语句或ternary@987654321 @
标签: php short-circuiting