Sono sbalordito dal codice, in cui i valori GET, ad esempio $_GET['username']
, non sono inclusi come parametri per le funzioni.
Quando è necessario includere i metodi POST e GET come parametri delle funzioni?
Sono sbalordito dal codice, in cui i valori GET, ad esempio $_GET['username']
, non sono inclusi come parametri per le funzioni.
Quando è necessario includere i metodi POST e GET come parametri delle funzioni?
Quando si è necessario includere POST e GET metodi come parametri per funzioni?
direi "mai": $_GET
e $_POST
sono quello che viene chiamato superglobals: essi esistono in tutta la sceneggiatura; il che significa che esistono all'interno di funzioni/metodi.
Soprattutto, non è necessario per voi la parola chiave global
.
Eppure, basandosi su quelli nelle funzioni/metodi è piuttosto una cattiva pratica: le funzioni/metodi dovrebbero generalmente non dipendere da niente non passato come parametro.
Quello che voglio dire è; prendere in considerazione queste due funzioni:
function check_login_password()
{
$login = $_GET['login'];
$password = $_GET['password'];
// Work with $login and $password
}
e
/**
* Check login and password
*
* @param $login string
* @param $password string
* @return boolean
*/
function check_login_password($login, $password)
{
// Work with $login and $password
}
OK, con la prima, non c'è bisogno di passare due parametri ... Ma quella funzione non sarà indipendente e non funzionerà in ogni situazione in cui dovresti controllare un paio di login/password che non provengono da $_GET
.
Con la seconda funzione, il chiamante è responsabile del passaggio dei parametri corretti; il che significa che possono venire da dove vuoi: la funzione sarà sempre in grado di fare il suo lavoro.
$ _GET e $ _POST sono variabili globali. Hanno valori non metodi. Sono i loro valori che si desidera inviare alle funzioni, e le classi/le funzioni dovrebbero generalmente non essere consapevoli di qualsiasi cosa al di fuori di esse, ad esempio da dove provengono i dati. Molti usano la scorciatoia di usare le variabili globali nelle funzioni e quindi limitano l'usabilità delle loro funzioni.
Non è necessario inviarli come parametri di funzione poiché sono variabili globali (accessibili ovunque nel codice).
Tuttavia, è sempre buona norma filtrarli e convalidarli prima di utilizzarli nel codice.
Qual è la tua vera domanda? L'unica frase (anche se imperfetta) con un punto interrogativo alla fine non ha alcun senso. $ _GET e $ _POST sono globali, possono essere utilizzati ovunque. È una buona pratica di programmazione, forse, forse no. –