PHP中用于isset()的速记法是什么?

112

在 PHP 中,如果某个变量不存在,是否有一种简短的方式将其赋值给某个东西?

if(!isset($var) {
  $var = "";
}

我想做类似的事情

$var = $var | "";

2
$val = isset($var) ? $var : ''; 这段代码是否符合您的需求? - RienNeVaPlu͢s
2
我发现这篇文章非常有用:http://davidwalsh.name/php-shorthand-if-else-ternary-operators - Pathros
如何更好地给变量赋默认值(模拟Perl的||,||=)? - Palec
2个回答

327

PHP 7更新(感谢shock_gone_wild

PHP 7引入了空合并运算符,将下面的语句简化为:

$var = $var ?? "default";

PHP 7 之前的版本

不,没有特殊的运算符或语法来实现这个。不过,你可以使用三元运算符:

$var = isset($var) ? $var : "default";

或者像这样:

isset($var) ?: $var = 'default';

1
这里是 PHP7 的新特性链接(包括 null 合并运算符):http://php.net/manual/zh/migration70.new-features.php - kurdtpage
1
除了赋值语句,这个运算符也可以用于函数参数。 - Andreas Bergström
4
在我的 PHP 7.1.11 环境中,它可以处理数组。 - humanityANDpeace
1
PHP 7.0不支持数组,如果可能请升级。 - user3791372
对于那个解释,我很抱歉!- 那也很酷和有趣! - Sunhat
显示剩余4条评论

73

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接