0

抱歉,如果标题不够清晰,但在 Javascript 中您可以这样做:

var input = null;
var fruit = input || 'default';

只是想知道 PHP 是否支持这种检查,目前我正在使用:

$fruit = !empty($input)?$input : 'default' ;

这很好,但当然 Javascript 方法更优雅。

谢谢

4

3 回答 3

7

||在 PHP 中返回一个布尔值,所以这个运算符不能用于它。对or.

但是,如果您使用的是 PHP5.3+ ,则可以使用二元运算符: ?:

$fruit = $input ?: 'default';

但是,它有一个很大的缺点,破坏了它在最有用的单一情况下的有用性(导入请求变量时):

$fruit = $_REQUEST['fruit'] ?: 'strawberry';

如果不存在,这会丢E_NOTICE在你的脸上。$_REQUEST['fruit']因此,在这种情况下,您仍然需要带有或检查的三元版本。isset!empty

于 2012-06-15T06:52:03.850 回答
0

在 PHP 中,||运算符返回一个布尔值,因此您总是会从中得到真或假。在 JS 中可能的原因是它会返回一个值。

所以,不,不可能。

于 2012-06-15T06:53:14.190 回答
0

PHP 不会,因为它返回一个布尔值,而不是像 JavaScript 或 Ruby 中的最后一个求值表达式。

您可以使用ThiefMaster 提到的三元或新的二进制形式。

于 2012-06-15T06:53:24.610 回答