0

为什么我收到此错误,代码在开发人员展示的现场演示中运行,并且代码相同?非常感激任何的帮助。

$method = $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] ?: $_SERVER['REQUEST_METHOD'];
4

2 回答 2

3

问题不在于三元运算符缺少其他说明的参数这一事实。问题可能是服务器的 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'];
于 2013-03-25T17:48:43.893 回答
1

改变这个

$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'];
于 2013-03-25T16:11:10.543 回答