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.

È stato utile?

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 .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top