PHP 中 GPC的思考:$_REQUEST、$_GET、$_POST、$_COOKIE 的關係和區別
PHP中GPC的優先級是可以在設置的,在php.ini中有一個配置,variables_order = "GPCS",這裏就是定義優先級的。
測試開始。
測試1:
PHP 代碼:
echo '<pre>';//源格式打印
//URL加上m=xxoo來測試$_GET
print_r($_REQUEST);//首先打印內容
print_r($_GET);
$_REQUEST = array();//清空$_REQUEST
echo $_GET['m'];
echo '</pre>';
測試結果:$_GET['m']的值是xxoo。
測試2:
PHP 代碼:
echo '<pre>';//源格式打印
//URL加上m=xxoo來測試$_GET
print_r($_REQUEST);
print_r($_GET);
$_GET = array();//清空
print_r($_REQUEST);
echo '</pre>';
測試結果:$_REQUEST['m']的值是xxoo。
結論:對$_REQUEST的操作沒有影響到$_GET,反之亦然。$_REQUEST只是包含了一個$_GET的副本(the same as $_POST 哈哈)。
總結:
$_REQUEST、$_GET、$_POST、$_COOKIE 的關係和區別。
1.關係:$_REQUEST包含了$_GET、$_POST、$_COOKIE的所有內容,是它們的集合體。
2.$_GET、$_POST、$_COOKIE在$_REQUEST中都有一個副本。改變$_REQUEST的值不影響$_GET等,反之亦然。
3.GPC同名情況下,$_REQUEST中的值依據php.ini中variables_order的配置來確定優先級!
測試開始。
測試1:
PHP 代碼:
echo '<pre>';//源格式打印
//URL加上m=xxoo來測試$_GET
print_r($_REQUEST);//首先打印內容
print_r($_GET);
$_REQUEST = array();//清空$_REQUEST
echo $_GET['m'];
echo '</pre>';
測試結果:$_GET['m']的值是xxoo。
測試2:
PHP 代碼:
echo '<pre>';//源格式打印
//URL加上m=xxoo來測試$_GET
print_r($_REQUEST);
print_r($_GET);
$_GET = array();//清空
print_r($_REQUEST);
echo '</pre>';
測試結果:$_REQUEST['m']的值是xxoo。
結論:對$_REQUEST的操作沒有影響到$_GET,反之亦然。$_REQUEST只是包含了一個$_GET的副本(the same as $_POST 哈哈)。
總結:
$_REQUEST、$_GET、$_POST、$_COOKIE 的關係和區別。
1.關係:$_REQUEST包含了$_GET、$_POST、$_COOKIE的所有內容,是它們的集合體。
2.$_GET、$_POST、$_COOKIE在$_REQUEST中都有一個副本。改變$_REQUEST的值不影響$_GET等,反之亦然。
3.GPC同名情況下,$_REQUEST中的值依據php.ini中variables_order的配置來確定優先級!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.