PHP 7.2升级建议"use curly braces to remove ambiguity"

PHP 7.2 upgrade advises to "use curly braces to remove ambiguity"

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

PHP 兼容性检查器已针对页眉和页脚提出以下建议:

27 & 30 | ERROR | Indirect access to variables, properties and methods will be evaluated strictly in left-to-right order since PHP 7.0. Use curly braces to remove ambiguity.

第 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'] );

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

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

在 previous/older PHP 版本上可以这样声明,但是从 PHP 7.0 开始,您需要使用大括号使其更 readable/evident 并避免困惑:

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

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

有关详细信息,请参阅 PHP - Variable variables