更新php版本7到8.0.3打开MySQL数据库时弹出如下错误

Posted

技术标签:

【中文标题】更新php版本7到8.0.3打开MySQL数据库时弹出如下错误【英文标题】:Updated php version 7 to 8.0.3 and the following error pops up when opening the MySQL database 【发布时间】:2021-07-01 00:01:03 【问题描述】:

致命错误:不支持带括号的a ? b : c ? d : e。在第 578 行的 C:\xampp\phpMyAdmin\libraries\classes\DatabaseInterface.php 中使用 (a ? b : c) ? d : ea ? b : (c ? d : e)

foreach ($tables as $one_database_name => $one_database_tables) 
                    uasort(
                        $one_database_tables,
                        function ($a, $b) 
                            $aLength = $a['Data_length'] + $a['Index_length'];
577                         $bLength = $b['Data_length'] + $b['Index_length'];
**578                         return ($aLength == $bLength)**
579                                ? 0
                                : ($aLength < $bLength) ? -1 : 1;
                        
                    );

【问题讨论】:

这能回答你的问题吗? PHP Error : Unparenthesized `a ? b : c ? d : e` is deprecated. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)` 【参考方案1】:

您使用的代码是嵌套的三元表达式。您拥有的表单是一个 PHP 习惯用法,但由于它可能模棱两可,现在禁止使用它。如果您添加适当的括号来消除歧义,那就没问题了。

您可以添加所需的括号,但有更好的方法 - 使用 spaceship operator。

全部替换

return ($aLength == $bLength)
                                ? 0
                                : ($aLength < $bLength) ? -1 : 1;

return ($aLength <=> $bLength);

【讨论】:

以上是关于更新php版本7到8.0.3打开MySQL数据库时弹出如下错误的主要内容,如果未能解决你的问题,请参考以下文章

mac下更新自带的PHP版本到5.6或7.0

mac下更新自带的PHP版本到5.6或7.0

mac下更新自带的PHP版本到5.6

将 PHP 版本 5.3 更新到 7.2 Amazon aws ec2

centos 7下配置mysql+php(ThinkPHP)+nginx

无法将 MySQL 从 8.0.3 升级到 8.0.14