$_REQUEST[$k] = isset($_GET[$k]) ? $_GET[$k] : $_POST[$k];
或
$_REQUEST[$k] = isset($_POST[$k]) ? $_POST[$k] : $_GET[$k];
是哪種情況,原因是什麼?
$_REQUEST[$k] = isset($_GET[$k]) ? $_GET[$k] : $_POST[$k];
或
$_REQUEST[$k] = isset($_POST[$k]) ? $_POST[$k] : $_GET[$k];
是哪種情況,原因是什麼?
$_REQUEST
是$_GET
,$_POST
,並$_COOKIE
其中variables_order並且由於PHP 5.3 request_order定義的順序進行結合。
默認順序是GET,POST,然後是cookie。這意味着POST參數會覆蓋現有的GET參數,Cookie會覆蓋現有的POST和GET參數。
$ _REQUEST只是PHP將所有GET和POST和COOKIE參數放入的數組,在衝突情況下優先按照該順序排列。
INI指令 「的variables_order」 被認爲是*影響$ _REQUEST,看到http://php.net/manual/en/ini.core.php
* 「認爲」,因爲我從來沒有使用過,要麼或$ _REQUEST本身。
你是對的,它在實踐中的確如此工作;不過我同意$ _REQUEST本身就是一種代碼味道。 – Piskvor 2010-09-07 08:35:42
*(建議閱讀)* [使用$ _REQUEST有什麼問題?](http://stackoverflow.com/questions/2142497/whats-wrong-with-using-request)和[$ _REQUEST是否存在安全問題? ](http://stackoverflow.com/questions/1149118/does-request-have-security-problem) – Gordon 2010-09-07 08:31:24