PHP 7.2升级建议“使用花括号消除歧义”

时间:2019-04-26 11:05:16

标签: wordpress php-7.2

我正在将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'] );

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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

有关更多详细信息,请参见PHP - Variable variables