PHP: $_GET and $_POST in functions?

前端 未结 3 2069
滥情空心
滥情空心 2020-11-30 14:13

I am flabbergasted by the code, where the GET-values, such as $_GET[\'username\'], are not included as parameters to functions.

When do you need to inc

3条回答
  •  挽巷
    挽巷 (楼主)
    2020-11-30 14:38

    When do you you need to include POST and GET methods as parameters to functions?

    I would say "never": $_GET and $_POST are what is called superglobals: they exists in the whole script; which means they exist inside functions/methods.

    Especially, you don't need to you the global keyword for those.


    Still, relying on those in your functions/methods is quite a bad practice: your functions/methods should generally not depend on anything not passed as a parameter.

    What I mean is; consider those two functions:

    function check_login_password()
    {
        $login = $_GET['login'];
        $password = $_GET['password'];
        // Work with $login and $password
    }
    

    and

    /**
     * Check login and password
     *
     * @param $login string
     * @param $password string
     * @return boolean
     */
    function check_login_password($login, $password)
    {
        // Work with $login and $password
    }
    

    OK, with the first one, you don't have to pass two parameters... But that function will not be independent and will not work in any situation where you'd have to check a couple of login/password that doesn't come from $_GET.

    With the second function, the caller is responsible for passing the right parameters; which mean they can come from wherever you want: the function will always be able to do its job.

提交回复
热议问题