PHP5到7代码问题,间接访问变量、属性和方法
PHP 5 to 7 code problem, Indirect access to variables, properties and methods
我最近从 PHP 5.6 迁移到 PHP 7.3 并试图修复我的所有网站并使它们保持最新。
在我的 Wordpress 主题上,我得到了很多:
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.
有问题的代码总是:
global $options;
foreach ($options as $value) {
if (get_settings( $value['id'] ) === FALSE) { $$value['id'] = $value['std']; } else { $$value['id'] = get_settings( $value['id'] ); }
}
有人可以帮忙吗,在 PHP7 中执行此操作的正确方法是什么,因为我很困惑。特定于 if
行的错误。
在这里和 Google 上进行了搜索,但没有找到任何有用的信息。试过大括号和括号,没有。
我试过了,但没有用:
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'] ); }
}
我认为它指的是可变变量,所以尝试${$value['id']}
而不是$$value['id']
:
foreach ($options as $value) {
if (get_settings( $value['id'] ) === FALSE) {
${$value['id']} = $value['std'];
} else {
${$value['id']} = get_settings( $value['id'] );
}
}
这是 PHP 升级说明中的 relevant documentation
我最近从 PHP 5.6 迁移到 PHP 7.3 并试图修复我的所有网站并使它们保持最新。
在我的 Wordpress 主题上,我得到了很多:
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.
有问题的代码总是:
global $options;
foreach ($options as $value) {
if (get_settings( $value['id'] ) === FALSE) { $$value['id'] = $value['std']; } else { $$value['id'] = get_settings( $value['id'] ); }
}
有人可以帮忙吗,在 PHP7 中执行此操作的正确方法是什么,因为我很困惑。特定于 if
行的错误。
在这里和 Google 上进行了搜索,但没有找到任何有用的信息。试过大括号和括号,没有。
我试过了,但没有用:
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'] ); }
}
我认为它指的是可变变量,所以尝试${$value['id']}
而不是$$value['id']
:
foreach ($options as $value) {
if (get_settings( $value['id'] ) === FALSE) {
${$value['id']} = $value['std'];
} else {
${$value['id']} = get_settings( $value['id'] );
}
}
这是 PHP 升级说明中的 relevant documentation