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

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

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

我想做类似的事情

$var = $var | "";

【问题讨论】:

标签: php isset shorthand


【解决方案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 = '';

【讨论】:

    猜你喜欢
    • 2014-02-06
    • 1970-01-01
    • 2020-10-06
    • 2010-11-17
    • 2010-12-04
    • 2018-10-28
    • 2017-04-10
    • 2011-11-23
    • 2013-05-11
    相关资源
    最近更新 更多