在 PHP 中使用三元运算符时出现 HTTP 错误 500

HTTP Error 500 when using ternary operator in PHP

提问人:Lee Worbey 提问时间:10/30/2023 更新时间:10/30/2023 访问量:46

问:

我最近将家谱网站上的php版本从7.4更新到8.1,并启用了SSL证书以摆脱“此网站不安全”的消息。现在,我的页面在使用三元运算符时生成错误 500。我做错了什么?

在我有这句话之前:

echo '<p><b>Sex</b> : ' . (('U' == $fp_sex) ? 'Unknown / Undefined' : ('M' == $fp_sex) ? 'Male' : 'Female') . '</p>';

我必须更新到以下内容才能正确加载页面:

echo '<p><b>Sex</b> : ';
    if ('U' == $fp_sex)
    {
        echo 'Unknown / Undefined';
    }
    else
    {
        if ('M' == $fp_sex)
        {
            echo 'Male';
        }
        else
        {
            echo 'Female';
        }
    }   
echo '</p>';

我不确定是否支持更新php版本或启用SSL证书会导致此问题。

任何帮助将不胜感激。

php ssl-certificate 条件运算符 php-8.1

评论

5赞 brombeer 10/30/2023
打开error_reporting揭示了什么?我收到“致命错误:未括号的 ?b : c ?d : 不支持 e。在 ... 中使用 (a ? b : c) ? d : e 或 a ? b : (c ? d : e) 在 ..."
0赞 Lee Worbey 10/30/2023
这很有帮助,谢谢!我试图打开错误报告,但似乎什么也做不出来。我将添加括号,然后重试。
0赞 Lee Worbey 10/30/2023
全部固定,并配有额外的支架!

答: 暂无答案