isset() 的 PHP 简写? [复制]

Posted

技术标签:

【中文标题】isset() 的 PHP 简写? [复制]【英文标题】:PHP shorthand for isset()? [duplicate] 【发布时间】:2013-09-07 08:03:03 【问题描述】:

如果某个变量在 php 中不存在,是否有一种速记方法可以将其分配给某个变量?

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

我想做类似的事情

$var = $var | "";

【问题讨论】:

$val = isset($var) ? $var : ''; 适合你吗? 我发现这篇文章很有用:davidwalsh.name/php-shorthand-if-else-ternary-operators 这个副本更好的原件:Best way to give a variable a default value (simulate Perl ||, ||= ) 【参考方案1】:

PHP 7 更新(感谢shock_gone_wild)

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

$var = $var ?? "default";

PHP 7 之前

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

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

或者像这样:

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

【讨论】:

这里是 PHP7 新特性的链接(包括空合并运算符):php.net/manual/en/migration70.new-features.php 除了赋值语句之外,这个运算符也可以用在函数参数中。 不适用于数组。 $attribute['hint'] ?? '' 未定义索引:提示 @MakashovNurbol 在我的设置 PHP 7.1.11 上它适用于数组。 php 7.0 不适用于数组。尽可能升级【参考方案2】:

PHP 7.4+;与null coalescing assignment operator

$var ??= '';

PHP 7.0+;与null coalescing operator

$var = $var ?? '';

PHP 5.3+;与ternary operator shorthand

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

或者对于带有 isset所有/旧版本

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

!isset($var) && $var = '';

【讨论】:

以上是关于isset() 的 PHP 简写? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

PHP表单验证

什么是 PHP 简写:print var if var exists

isset($a) 的捷径? $a : '其他'; [复制]

php静态动态对象及json格式

php变量的判空和类型判断

PHP判断变量是否为控