PHP的简写为isset()?

bre*_*ine 70 php isset shorthand

如果在PHP中不存在变量,是否有一种速记方式可以将变量赋值给某些东西?

if(!isset($var) {
  $var = "";
}
Run Code Online (Sandbox Code Playgroud)

我想做点什么

$var = $var | "";
Run Code Online (Sandbox Code Playgroud)

hek*_*mgl 201

PHP 7更新(感谢shock_gone_wild)

PHP 7引入了所谓的null合并运算符,它将以下语句简化为:

$var = $var ?? "default";
Run Code Online (Sandbox Code Playgroud)

在PHP 7之前

不,没有特殊的运算符或特殊语法.但是,您可以使用三元运算符:

$var = isset($var) ? $var : "default";
Run Code Online (Sandbox Code Playgroud)

或者像这样:

isset($var) ?: $var = 'default';
Run Code Online (Sandbox Code Playgroud)

  • 不适用于数组.`$ attribute ['hint'] ?? ''`**未定义索引:提示** (5认同)
  • @MakashovNurbol 在我的设置 PHP 7.1.11 上它适用于数组。 (2认同)

Fab*_* Sa 23

您可以使用新的三元运算符(PHP 5.3+)

isset($var) ?: $var = "";
Run Code Online (Sandbox Code Playgroud)

或者对于旧版本:

$var = isset($var) ? $var : "";
Run Code Online (Sandbox Code Playgroud)

  • 如果`$ var`存在且有值,则用值"true"覆盖它.这2个例子不一样. (5认同)
  • 你是对的.编辑,谢谢. (2认同)
  • 不确定是谁贬低了你,但我把你带回来,这是一个有用的答案,谢谢. (2认同)