Фатальная ошибка: Синтаксис доступа со смещением массива и строки с фигурными скобками больше не поддерживается в php 8.0 pkcs5_unpad

#javascript #php #laravel #digital-ocean

Вопрос:

Я получил эту ошибку после копирования кода из учебника. Это устарело, и я попытался решить эту проблему:

Синтаксис доступа со смещением массива и строки с фигурными скобками больше не поддерживается в …/app/Http/Helpers/helpers.php

Моя копия кода:

 if (!function_exists("pkcs5_unpad_e")) {
    function pkcs5_unpad_e($text) {
        $pad = ord($text{strlen($text) - 1});
        if ($pad > strlen($text))
            return false;

        return substr($text, 0, -1 * $pad);
    }
}
 

Мое редактирование: заменить {....} на [.....] ==> ОШИБКА HTTP 500

 if (!function_exists("pkcs5_unpad_e")) {
    function pkcs5_unpad_e($text) {
        $pad = ord($text[strlen($text) - 1]);
        if ($pad > strlen($text))
                return false;
            
        return substr($text, 0, -1 * $pad);
    }
}
 

Я использую сервер киберпанели Ubuntu 20.04 DigitalOcean и PHP 8.

Комментарии:

1. Ваш второй код (когда вы используете [ ] вместо { } ) — это путь, { } который устарел, как показано в предыдущем уведомлении… и вам также никогда не приходилось использовать { } , но всегда [ ] , когда вы обращаетесь к an array … Поэтому измените свой код на [ ] , и когда вы получите ошибку 500 , просмотрите журналы и поделитесь ими с нами…

2. Спасибо всем, этот код не запускается с php8