【问题标题】:Combined comparison Operator (<=>) and null coalescing operator (??) [closed]组合比较运算符 (<=>) 和空值合并运算符 (??) [关闭]
【发布时间】:2015-06-15 18:40:23
【问题描述】:

关于组合比较运算符 () 和空值合并运算符 (??) 的详细信息

【问题讨论】:

标签: php php-7


【解决方案1】:

组合比较运算符返回 -1、0 或 1,具体取决于哪个大于另一个:

if ($x <=> $y == -1) {
    echo '$x < $y';
} elseif ($x <=> $y == 1) {
    echo '$x > $y';
} else {
    echo '$x == $y';
}

null 合并运算符类似于 $x ?: $y,但检查的是 null 而不是 false-y:

$x = null;
$y = 'hello';
echo $x ?? $y; //hello
echo $x ?: $y; //hello
$x = 0;
$y = 1;
echo $x ?? $y; //0;
echo $x ?: $y; //1

【讨论】:

  • ?? 比这更复杂。它也可以isset()
  • 我相信如果没有定义变量,它不会发出通知,比如empty()
猜你喜欢
  • 2010-10-13
  • 1970-01-01
  • 2011-02-13
  • 2012-09-19
  • 1970-01-01
  • 2013-09-13
  • 2011-12-24
  • 2021-04-20
  • 2017-09-04
相关资源
最近更新 更多