@Sergei_55
изучаю Laravel

Где поставить скобки?

После обновления php до версии 8.0 появилась вот такая ошибка при загрузке phpMyAdmin

Fatal error: Unparenthesized `a ? b : c ? d : e` is not supported. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)` in /home/user/Projects/pma/libraries/classes/DatabaseInterface.php on line 615


elseif ($sort_by == 'Data_length') {
                // Size = Data_length + Index_length
                foreach ($tables as $one_database_name => $one_database_tables) {
                    uasort(
                        $one_database_tables,
                        function ($a, $b) {
                            $aLength = $a['Data_length'] + $a['Index_length'];
                            $bLength = $b['Data_length'] + $b['Index_length'];
                            return ($aLength == $bLength)
                                ? 0
                                : ($aLength < $bLength) ? -1 : 1;
                        }
                    );


: ($aLength < $bLength) ? -1 : 1; вот на эту строку и ругается

Как я понял поменялся синтаксис. но моих знаний не хватит поставить эти скобки...
  • Вопрос задан
  • 821 просмотр
Решения вопроса 2
@VadimFox
Исходя из ошибки :
return ($aLength == $bLength)
     ? 0
     :  ($aLength < $bLength) ? -1 : 1; // завернуть строку в круглые скобки: 
//Тесть так: 

return ($aLength == $bLength)
     ? 0
     :  ( ($aLength < $bLength) ? -1 : 1 );
Ответ написан
Комментировать
return $aLength == ($bLength ? 0 :  $aLength < $bLength) ? -1 : 1;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Vlad16
Веб-программист
Там вроде такой синтаксис запретили. Можете перепишете с использованием if?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы