PHP:$ _REQUEST为空时无法设置变量

时间:2011-04-04 15:57:26

标签: php post get request

我在使用$ _REQUEST设置变量时遇到问题,或者是我的语法。检查$_REQUEST['orderBy']时,如果它为空/空,我想设置默认值'order_date'。但是,当它检索并清空$_REQUEST['orderBy']时,它只是保持为空而不是设置它。我在代码中做了一个难看的修复,以便稍后解决问题,但我只是想知道我做错了什么:

$orderBy = isset($_REQUEST['orderBy']) ? stripslashes($_REQUEST['orderBy']) : 'order_date';

1 个答案:

答案 0 :(得分:4)

在语法上没有任何错误,但如果$orderBy设置为空,它会将$_REQUEST['orderBy']设置为空值。尝试使用empty()

$orderBy = (empty($_REQUEST['orderBy'])) ? 'order_date' : $_REQUEST['orderBy'];

如果它仍然不起作用,您可能会错误地在此行之前设置$_REQUEST['orderBy']。您应该尝试使用更具体的超级全局变量,例如$_POST$_GET,因为它们可以使您的代码更清晰,更易读,并且因为它们可以提高应用程序的安全性。