类 Javascript || 在 php 中

bal*_*drs 1 javascript php

javascript,我可以使用,例如这样的语句:

window.foo = window.foo || [];
Run Code Online (Sandbox Code Playgroud)

如果没有window.foo,它将被分配给数组,但不会转换为boolean.

但是,如果我会做这样的事情php,我会得到两种truefalse。(例如boolean结果,不等于true值的变量)

为什么会存在这样的差异?

PS问题不在于用什么来代替,问题在于为什么要使用它。

Tib*_*bos 5

不同之处在于运算符返回的内容。在 PHP 中,逻辑运算符返回布尔值。在 JavaScript 中,逻辑运算符返回实际操作数,并在上下文需要时依靠隐式转换将它们转换为布尔值。

如果您想要在 PHP 中返回第一个操作数为 TRUE 时返回最后一个操作数的功能,您可以使用三元运算符 ( ?:)的简写形式:

PHP.net说:

自 PHP 5.3 起,可以省略三元运算符的中间部分。表达式 expr1 ?: 如果 expr1 的计算结果为 TRUE,则 expr3 返回 expr1,否则返回 expr3。