Esiste un modo migliore per controllare le variabili POST in PHP?
-
06-07-2019 - |
Domanda
Trovo nelle mie pagine PHP che finisco con righe e righe di codice che assomigliano a questo:
$my_id = isset( Trovo nelle mie pagine PHP che finisco con righe e righe di codice che assomigliano a questo:
<*>
Esiste un modo migliore, più conciso o più leggibile per controllare questo array e assegnarli a una variabile locale se esistono o applicare un valore predefinito in caso contrario?
EDIT: non voglio usare register_globals ()
- avrei comunque comunque il problema isset.
REQUEST['my_id']) ? Trovo nelle mie pagine PHP che finisco con righe e righe di codice che assomigliano a questo:
<*>
Esiste un modo migliore, più conciso o più leggibile per controllare questo array e assegnarli a una variabile locale se esistono o applicare un valore predefinito in caso contrario?
EDIT: non voglio usare register_globals ()
- avrei comunque comunque il problema isset.
REQUEST['my_id'] : '';
$another_var = isset( Trovo nelle mie pagine PHP che finisco con righe e righe di codice che assomigliano a questo:
<*>
Esiste un modo migliore, più conciso o più leggibile per controllare questo array e assegnarli a una variabile locale se esistono o applicare un valore predefinito in caso contrario?
EDIT: non voglio usare register_globals ()
- avrei comunque comunque il problema isset.
REQUEST['another_var']) ? Trovo nelle mie pagine PHP che finisco con righe e righe di codice che assomigliano a questo:
<*>
Esiste un modo migliore, più conciso o più leggibile per controllare questo array e assegnarli a una variabile locale se esistono o applicare un valore predefinito in caso contrario?
EDIT: non voglio usare register_globals ()
- avrei comunque comunque il problema isset.
REQUEST['another_var'] : 42;
...
Esiste un modo migliore, più conciso o più leggibile per controllare questo array e assegnarli a una variabile locale se esistono o applicare un valore predefinito in caso contrario?
EDIT: non voglio usare register_globals ()
- avrei comunque comunque il problema isset.
Soluzione
Che ne dici di racchiuderlo in una funzione?
<?php
function getPost($name, $default = null) {
return isset( Che ne dici di racchiuderlo in una funzione?
<*>POST[$name]) ? Che ne dici di racchiuderlo in una funzione?
<*>POST[$name] : $default;
}
Altri suggerimenti
un metodo migliore potrebbe essere quello di creare una classe singleton / statica per sottrarre i dettagli del controllo dei dati della richiesta.
Qualcosa del tipo:
class Request {
private $defaults = array();
private static un metodo migliore potrebbe essere quello di creare una classe singleton / statica per sottrarre i dettagli del controllo dei dati della richiesta.
Qualcosa del tipo:
# get an instance of the request
$request = Request::getInstance();
# pass in defaults.
$request->setDefaults(array('name'=>'Please Specify'));
# access properties
echo $request->name;
echo $request->email;
puoi quindi fare:
<*>
Penso che questo renda i tuoi singoli script più puliti e astratti dalla convalida ecc. Oltre a un sacco di ambito con questo design per estenderlo / aggiungere comportamenti alternativi, aggiungere una gestione predefinita più complicata ecc ecc.
instance = false;
function getInstance () {
if (!self:: un metodo migliore potrebbe essere quello di creare una classe singleton / statica per sottrarre i dettagli del controllo dei dati della richiesta.
Qualcosa del tipo:
<*>
puoi quindi fare:
<*>
Penso che questo renda i tuoi singoli script più puliti e astratti dalla convalida ecc. Oltre a un sacco di ambito con questo design per estenderlo / aggiungere comportamenti alternativi, aggiungere una gestione predefinita più complicata ecc ecc.
instance) {
$c = __CLASS__;
self:: un metodo migliore potrebbe essere quello di creare una classe singleton / statica per sottrarre i dettagli del controllo dei dati della richiesta.
Qualcosa del tipo:
<*>
puoi quindi fare:
<*>
Penso che questo renda i tuoi singoli script più puliti e astratti dalla convalida ecc. Oltre a un sacco di ambito con questo design per estenderlo / aggiungere comportamenti alternativi, aggiungere una gestione predefinita più complicata ecc ecc.
instance = new $c;
}
return self:: un metodo migliore potrebbe essere quello di creare una classe singleton / statica per sottrarre i dettagli del controllo dei dati della richiesta.
Qualcosa del tipo:
<*>
puoi quindi fare:
<*>
Penso che questo renda i tuoi singoli script più puliti e astratti dalla convalida ecc. Oltre a un sacco di ambito con questo design per estenderlo / aggiungere comportamenti alternativi, aggiungere una gestione predefinita più complicata ecc ecc.
instance;
}
function setDefaults($defaults) {
$this->defaults = $defaults;
}
public function __get($field) {
if (isset( un metodo migliore potrebbe essere quello di creare una classe singleton / statica per sottrarre i dettagli del controllo dei dati della richiesta.
Qualcosa del tipo:
<*>
puoi quindi fare:
<*>
Penso che questo renda i tuoi singoli script più puliti e astratti dalla convalida ecc. Oltre a un sacco di ambito con questo design per estenderlo / aggiungere comportamenti alternativi, aggiungere una gestione predefinita più complicata ecc ecc.
REQUEST[$field]) && !empty( un metodo migliore potrebbe essere quello di creare una classe singleton / statica per sottrarre i dettagli del controllo dei dati della richiesta.
Qualcosa del tipo:
<*>
puoi quindi fare:
<*>
Penso che questo renda i tuoi singoli script più puliti e astratti dalla convalida ecc. Oltre a un sacco di ambito con questo design per estenderlo / aggiungere comportamenti alternativi, aggiungere una gestione predefinita più complicata ecc ecc.
REQUEST[$field])) {
return un metodo migliore potrebbe essere quello di creare una classe singleton / statica per sottrarre i dettagli del controllo dei dati della richiesta.
Qualcosa del tipo:
<*>
puoi quindi fare:
<*>
Penso che questo renda i tuoi singoli script più puliti e astratti dalla convalida ecc. Oltre a un sacco di ambito con questo design per estenderlo / aggiungere comportamenti alternativi, aggiungere una gestione predefinita più complicata ecc ecc.
REQUEST['field'];
} elseif (isset($this->defaults[$field])) {
return $this->defaults[$field];
} else {
return ''; # define a default value here.
}
}
}
puoi quindi fare:
<*>Penso che questo renda i tuoi singoli script più puliti e astratti dalla convalida ecc. Oltre a un sacco di ambito con questo design per estenderlo / aggiungere comportamenti alternativi, aggiungere una gestione predefinita più complicata ecc ecc.
Innanzitutto, utilizza $ _POST
per le variabili POST. $ _REQUEST
è un mashup di molte variabili in entrata diverse, non solo $ _POST
e potrebbe causare problemi.
Una soluzione alla tua domanda sarebbe quella di creare una funzione che gestisca la logica isset ()
.
function ForceIncomingValue($Key, $Default) {
if (!isset( Innanzitutto, utilizza $ _POST
per le variabili POST. $ _REQUEST
è un mashup di molte variabili in entrata diverse, non solo $ _POST
e potrebbe causare problemi.
Una soluzione alla tua domanda sarebbe quella di creare una funzione che gestisca la logica isset ()
.
<*>POST[$Key]))
return $Default;
else return Innanzitutto, utilizza $ _POST
per le variabili POST. $ _REQUEST
è un mashup di molte variabili in entrata diverse, non solo $ _POST
e potrebbe causare problemi.
Una soluzione alla tua domanda sarebbe quella di creare una funzione che gestisca la logica isset ()
.
<*>POST[$Key];
}
prima di tutto, MAI usare la variabile $ _REQUEST, porterà a bug e altri problemi durante lo sviluppo
function getPOST($key) {
if(isset( prima di tutto, MAI usare la variabile $ _REQUEST, porterà a bug e altri problemi durante lo sviluppo
function getPOST($key, $default = NULL) {
if(isset( prima di tutto, MAI usare la variabile $ _REQUEST, porterà a bug e altri problemi durante lo sviluppo
function getPOST($key) {
if(isset( prima di tutto, MAI usare la variabile $ _REQUEST, porterà a bug e altri problemi durante lo sviluppo
<*>
nota che questo codice lascia vuota la variabile quando $ _POST [$ key]
non è stato impostato
potresti anche adattare quel codice per consentirti invece di fornirti un (ragionevole) valore predefinito quando non è stato possibile caricare il valore.
<*>POST[$key])) {
return prima di tutto, MAI usare la variabile $ _REQUEST, porterà a bug e altri problemi durante lo sviluppo
<*>
nota che questo codice lascia vuota la variabile quando $ _POST [$ key]
non è stato impostato
potresti anche adattare quel codice per consentirti invece di fornirti un (ragionevole) valore predefinito quando non è stato possibile caricare il valore.
<*>POST[$key];
}
}
nota che questo codice lascia vuota la variabile quando $ _POST [$ key]
non è stato impostato
potresti anche adattare quel codice per consentirti invece di fornirti un (ragionevole) valore predefinito quando non è stato possibile caricare il valore.
<*>POST[$key])) {
return prima di tutto, MAI usare la variabile $ _REQUEST, porterà a bug e altri problemi durante lo sviluppo
function getPOST($key) {
if(isset( prima di tutto, MAI usare la variabile $ _REQUEST, porterà a bug e altri problemi durante lo sviluppo
<*>
nota che questo codice lascia vuota la variabile quando $ _POST [$ key]
non è stato impostato
potresti anche adattare quel codice per consentirti invece di fornirti un (ragionevole) valore predefinito quando non è stato possibile caricare il valore.
<*>POST[$key])) {
return prima di tutto, MAI usare la variabile $ _REQUEST, porterà a bug e altri problemi durante lo sviluppo
<*>
nota che questo codice lascia vuota la variabile quando $ _POST [$ key]
non è stato impostato
potresti anche adattare quel codice per consentirti invece di fornirti un (ragionevole) valore predefinito quando non è stato possibile caricare il valore.
<*>POST[$key];
}
}
nota che questo codice lascia vuota la variabile quando $ _POST [$ key]
non è stato impostato
potresti anche adattare quel codice per consentirti invece di fornirti un (ragionevole) valore predefinito quando non è stato possibile caricare il valore.
<*>POST[$key];
} else {
return $default;
}
}
nota che questo codice lascia vuota la variabile quando $ _POST [$ key]
non è stato impostato
potresti anche adattare quel codice per consentirti invece di fornirti un (ragionevole) valore predefinito quando non è stato possibile caricare il valore.
<*>POST[$key])) {
return prima di tutto, MAI usare la variabile $ _REQUEST, porterà a bug e altri problemi durante lo sviluppo
<*>
nota che questo codice lascia vuota la variabile quando $ _POST [$ key]
non è stato impostato
potresti anche adattare quel codice per consentirti invece di fornirti un (ragionevole) valore predefinito quando non è stato possibile caricare il valore.
<*>POST[$key];
}
}
nota che questo codice lascia vuota la variabile quando $ _POST [$ key]
non è stato impostato
potresti anche adattare quel codice per consentirti invece di fornirti un (ragionevole) valore predefinito quando non è stato possibile caricare il valore.
<*>L'insieme di variabili che ti aspetti è noto al momento della stesura dello script o vuoi farlo per un insieme di valori arbitrario? Se il primo è vero, potresti fare qualcosa del genere:
# This array would hold the names of all the variables you're expecting
# and a default value for that variable name
$variableNames = array (...);
foreach ($variableNames as $key => $default) {
if (isset ( L'insieme di variabili che ti aspetti è noto al momento della stesura dello script o vuoi farlo per un insieme di valori arbitrario? Se il primo è vero, potresti fare qualcosa del genere:
<*>
Fondamentalmente, questo sfrutta la capacità di PHP di valutare le variabili per creare altre variabili (da qui il doppio dollaro per la chiave $$ - questo significa creare una nuova variabile il cui nome è il valore di $ chiave).
Non ho ancora trovato una buona soluzione a quest'ultima situazione.
REQUEST[$key])) $key = L'insieme di variabili che ti aspetti è noto al momento della stesura dello script o vuoi farlo per un insieme di valori arbitrario? Se il primo è vero, potresti fare qualcosa del genere:
<*>
Fondamentalmente, questo sfrutta la capacità di PHP di valutare le variabili per creare altre variabili (da qui il doppio dollaro per la chiave $$ - questo significa creare una nuova variabile il cui nome è il valore di $ chiave).
Non ho ancora trovato una buona soluzione a quest'ultima situazione.
REQUEST[$key];
else $key = $default;
}
Fondamentalmente, questo sfrutta la capacità di PHP di valutare le variabili per creare altre variabili (da qui il doppio dollaro per la chiave $$ - questo significa creare una nuova variabile il cui nome è il valore di $ chiave).
Non ho ancora trovato una buona soluzione a quest'ultima situazione.
null di PHP operatore di coalescenza !
$ username = $ _GET ['user'] ?? 'Nessuno';
Per molte variabili, con un controllo dei requisiti, chiunque è libero di usare il mio prevede
funzione .