【问题标题】:PHP 7.2 upgrade advises to "use curly braces to remove ambiguity"PHP 7.2 升级建议“使用花括号消除歧义”
【发布时间】:2019-04-26 11:05:16
【问题描述】:

我正在将我的 WordPress 网站从 PHP 5.5 更新到 PHP 7.2。

PHP 兼容性检查器为页眉和页脚提供以下建议:

27 & 30 |错误 |自 PHP 7.0 起,对变量、属性和方法的间接访问将严格按照从左到右的顺序进行评估。使用花括号消除歧义。

第 24-33 行内容如下:

---从Header.php中提取---

global $options;
foreach ($options as $value) {
    if (isset($value['id']) && get_option( $value['id'] ) === FALSE && isset($value['std'])) {
        $$value['id'] = $value['std'];
    }
elseif (isset($value['id'])) {
    $$value['id'] = get_option( $value['id'] );
    }
}
?>

---从Header.php中提取---

第 27 行内容如下:

$$value['id'] = $value['std'];**

第 30 行内容如下:

$$value['id'] = get_option( $value['id'] );

我应该如何使用花括号来修复上面的两个语句?

【问题讨论】:

    标签: wordpress php-7.2


    【解决方案1】:

    是动态变量名$$value['id']

    在以前/较旧的 PHP 版本中,可以这样声明它,但从 PHP 7.0 开始,您需要使用花括号使其更具可读性/明显性并避免混淆:

    ${$value['id']} = $value['std'];

    ${$value['id']} = get_option( $value['id'] );

    更多详情请见PHP - Variable variables

    【讨论】:

      猜你喜欢
      • 2016-04-11
      • 1970-01-01
      • 1970-01-01
      • 2018-05-02
      • 1970-01-01
      • 1970-01-01
      • 2014-12-03
      • 2021-10-13
      • 1970-01-01
      相关资源
      最近更新 更多