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。
我正在将我的 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。