Обновление PHP 7.2 рекомендует «использовать фигурные скобки для устранения неоднозначности» - PullRequest
1 голос
/ 26 апреля 2019

Я обновляю свой сайт 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 Ответ

1 голос
/ 26 апреля 2019

Это имя динамической переменной $$value['id'].

В предыдущих / более старых версиях PHP было нормально объявить это так, но начиная PHP 7.0, вам нужно использовать фигурные скобки, чтобы сделать его более читабельным / наглядным иИзбегайте путаницы:

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

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

См. PHP - Переменные переменные для получения более подробной информации.

...