更新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 : e
或 a ? 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数据库时弹出如下错误的主要内容,如果未能解决你的问题,请参考以下文章
将 PHP 版本 5.3 更新到 7.2 Amazon aws ec2