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 简写:print var if var exists