为什么我收到此错误,代码在开发人员展示的现场演示中运行,并且代码相同?非常感激任何的帮助。
$method = $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] ?: $_SERVER['REQUEST_METHOD'];
为什么我收到此错误,代码在开发人员展示的现场演示中运行,并且代码相同?非常感激任何的帮助。
$method = $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] ?: $_SERVER['REQUEST_METHOD'];
问题不在于三元运算符缺少其他说明的参数这一事实。问题可能是服务器的 PHP 版本。
直接来自PHP 文档:
从 PHP 5.3 开始,可以省略三元运算符的中间部分。表达式 expr1 ?:如果 expr1 的计算结果为 TRUE,则 expr3 返回 expr1,否则返回 expr3。
它的编写方式适用于 PHP 版本等于或高于 5.3 的任何服务器。
否则它应该用它的等效表达式重写:
$method = $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] ? $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] : $_SERVER['REQUEST_METHOD'];
改变这个
$method = $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] ?: $_SERVER['REQUEST_METHOD'];
至
$method = $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] ? "" : $_SERVER['REQUEST_METHOD'];
或者
$method = $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] ? NULL : $_SERVER['REQUEST_METHOD'];