开发者社区 问答 正文

PHP什么情况下可以写: $a = $a or $b;?

因为js经常有这样的写法,但是我在php下试了却不行,$a为null,false,-1时都无效。
现在用的比较啰嗦的写法:

$a = $a?$a:$b;
$a = is_*($a)?$a:$b;

但是如何满足这样的写法:

$a = $a or $b;

展开
收起
落地花开啦 2016-06-16 13:45:22 2025 分享 版权
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    PHP是不支持$a = $a || $b;这种赋值写法的,这样写返回的是一个或运算的布尔值。

    但是,对于PHP本身提供的三元运算(expr1) ? (expr2) : (expr3)从PHP5.3开始已经可以省略expr2,因此你可以简写成下面这样:

    $a = $a ?: $b;

    简洁程度应该跟JS里面的a = a || b差不多吧? 但是要注意:PHP中 0、null、''(空字符串)都是==false的。

    2019-07-17 19:40:44
    赞同 展开评论
问答分类:
问答地址: