开发者

passing POST array to php function

开发者 https://www.devze.com 2022-12-10 04:38 出处:网络
Can i pass the entire POST array into a function and handle it within the function? such as PostInfo($_POST开发者_Go百科);

Can i pass the entire POST array into a function and handle it within the function?

such as

PostInfo($_POST开发者_Go百科);


function PostInfo($_POST){
    $item1 = $_POST[0];
    $item2 = $_POST[1];
    $item3 = $_POST[2];
        //do something
return $result;

}

or is this the correct way of doing this?


Yes. If you are going to name the local variable $_POST though, don't bother. $_POST is a 'superglobal', a global that doesn't require the global keyword to use it outside normal scope. Your above function would work without the parameter on it.

NOTE You cannot use any superglobal (i.e. $_POST) as a function argument in PHP 5.4 or later. It will generate a Fatal error


You can actually pass $_POST to any function which takes in an array.

function process(array $request)
{

}

process($_POST);
process($_GET);

Great for testing.


The $_POST-array is an array like every other array in PHP (besides being a so-called superglobal), so you can pass it as a function parameter, pass it around and even change it (even though this might not be wise in most situations).

Regarding your code, I'd change it a bit to make it more clear:

PostInfo($_POST);

function PostInfo($postVars)
{
    $item1 = $postVars[0];
    $item2 = $postVars[1];
    $item3 = $postVars[2];
        //do something
    return $result;
}

This will visibly separate the function argument from the $_POST superglobal. Another option would be to simple remove the function argument and rely on the superglobal-abilities of $_POST:

PostInfo();

function PostInfo()
{
    $item1 = $_POST[0];
    $item2 = $_POST[1];
    $item3 = $_POST[2];
        //do something
    return $result;
}
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号