原文位址找不到了 sorry

$_REQUEST、 $_GET、 $_POST、 $_COOKIE 的關系和差別:
1.關系:$_REQUEST包含了$_GET、$_POST、$_COOKIE的所有内容,是它們的集合體。(測試1)
2.$_GET、$_POST、$_COOKIE在$_REQUEST中都有一個副本。改變$_REQUEST的值不影響$_GET等,反之亦然。(測試2)
3.GET和POST同名的情況下,$_REQUEST取的是POST的值。(測試3)
4.COOKIE與GET或POST重名的情況下,$_REQUEST取的是COOKIE的值。COOKIE的優先級最高。(測試4)
測試開始。
測試1:
<code>echo '<pre>';//源格式列印 //URL加上m=xxoo來測試$_GET print_r($_REQUEST);//首先列印内容 print_r($_GET);</code>
<code></code>
<code> $_REQUEST = array();//清空$_REQUEST echo $_GET['m']; echo '</pre>'; </code>
測試結果:$_GET['m']的值是xxoo。
測試2:
<code>echo '<pre>';//源格式列印 //URL加上m=xxoo來測試$_GET print_r($_REQUEST); print_r($_GET);</code>
<code> $_GET = array();//清空 print_r($_REQUEST); echo '</pre>'; </code>
測試結果:$_REQUEST['m']的值是xxoo。
結論:對$_REQUEST的操作沒有影響到$_GET,反之亦然。$_REQUEST隻是包含了一個$_GET的副本(the same as $_POST 哈哈)。
測試3
<code>//POST-GET重名測試 //從其他頁面POST傳送一個m的值為post,action位址加上m=get print_r($_REQUEST); print_r($_GET); print_r($_POST); </code>
結果:$_REQUEST['m'] == 'post'。
結論:同時送出GET和POST且同名,$_REQUEST取的是POST的值。(可能是POST優先級更高。)
測試4
<code>//cookie與post\get 重名測試 setcookie('m', 'cookie', time()+3600);//先把COOKIE種上,名字為m,值為cookie。然後重新整理。(COOKIE要重新整理才生效)</code>
<code>//從其他頁面POST傳送一個m的值為post,action位址加上m=get print_r($_REQUEST); </code>
結果:$_REQUEST['m'] == 'cookie'。結論:COOKIE的優先級最高。