[英]passing POST array to php function
我可以將整個POST數組傳遞給函數並在函數內處理它嗎?
如
PostInfo($_POST);
function PostInfo($_POST){
$item1 = $_POST[0];
$item2 = $_POST[1];
$item3 = $_POST[2];
//do something
return $result;
}
或者這是正確的方法嗎?
是。 如果您要命名本地變量$_POST
,請不要打擾。 $_POST
是一個'超全局',一個不需要global
關鍵字在正常范圍之外使用它的global
。 您的上述功能可以在沒有參數的情況下工作。
注意在PHP 5.4或更高版本中,不能使用任何超全局(即
$_POST
)作為函數參數。 它會產生致命錯誤
您實際上可以將$ _POST傳遞給任何接收數組的函數。
function process(array $request)
{
}
process($_POST);
process($_GET);
非常適合測試。
$_POST
-array是一個像PHP中的每個其他數組一樣的數組(除了是一個所謂的超全局 ),所以你可以將它作為函數參數傳遞,傳遞它甚至改變它(盡管這可能不是明智的大多數情況)。
關於你的代碼,我會稍微改變一下以使其更清晰:
PostInfo($_POST);
function PostInfo($postVars)
{
$item1 = $postVars[0];
$item2 = $postVars[1];
$item3 = $postVars[2];
//do something
return $result;
}
這將明顯地將函數參數與$_POST
超全局分開。 另一種選擇是簡單地刪除函數參數並依賴$_POST
的超全局能力:
PostInfo();
function PostInfo()
{
$item1 = $_POST[0];
$item2 = $_POST[1];
$item3 = $_POST[2];
//do something
return $result;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.