簡體   English   中英

將POST數組傳遞給php函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM