¿Hay una mejor manera de verificar las variables POST en PHP?
-
06-07-2019 - |
Pregunta
Encuentro en mis páginas PHP que termino con líneas y líneas de código que se ven así:
$my_id = isset( Encuentro en mis páginas PHP que termino con líneas y líneas de código que se ven así:
<*>
¿Existe una forma mejor, más concisa o más legible de verificar esta matriz y asignarla a una variable local si existe o aplicar un valor predeterminado si no existe?
EDITAR: no quiero usar register_globals ()
- De todos modos, todavía tendría el problema de isset.
REQUEST['my_id']) ? Encuentro en mis páginas PHP que termino con líneas y líneas de código que se ven así:
<*>
¿Existe una forma mejor, más concisa o más legible de verificar esta matriz y asignarla a una variable local si existe o aplicar un valor predeterminado si no existe?
EDITAR: no quiero usar register_globals ()
- De todos modos, todavía tendría el problema de isset.
REQUEST['my_id'] : '';
$another_var = isset( Encuentro en mis páginas PHP que termino con líneas y líneas de código que se ven así:
<*>
¿Existe una forma mejor, más concisa o más legible de verificar esta matriz y asignarla a una variable local si existe o aplicar un valor predeterminado si no existe?
EDITAR: no quiero usar register_globals ()
- De todos modos, todavía tendría el problema de isset.
REQUEST['another_var']) ? Encuentro en mis páginas PHP que termino con líneas y líneas de código que se ven así:
<*>
¿Existe una forma mejor, más concisa o más legible de verificar esta matriz y asignarla a una variable local si existe o aplicar un valor predeterminado si no existe?
EDITAR: no quiero usar register_globals ()
- De todos modos, todavía tendría el problema de isset.
REQUEST['another_var'] : 42;
...
¿Existe una forma mejor, más concisa o más legible de verificar esta matriz y asignarla a una variable local si existe o aplicar un valor predeterminado si no existe?
EDITAR: no quiero usar register_globals ()
- De todos modos, todavía tendría el problema de isset.
Solución
¿Qué tal envolverlo en una función?
<?php
function getPost($name, $default = null) {
return isset( ¿Qué tal envolverlo en una función?
<*>POST[$name]) ? ¿Qué tal envolverlo en una función?
<*>POST[$name] : $default;
}
Otros consejos
un método mejor podría ser crear una clase singleton / estática para abstraer los detalles de verificar los datos de la solicitud.
Algo así como:
class Request {
private $defaults = array();
private static un método mejor podría ser crear una clase singleton / estática para abstraer los detalles de verificar los datos de la solicitud.
Algo así como:
# 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;
entonces puedes hacer:
<*>
Creo que esto hace que sus scripts individuales se carguen más y abstraiga la validación, etc. Además de un gran alcance con este diseño para extenderlo / agregar comportamientos alternativos, agregar un manejo predeterminado más complicado, etc., etc.
instance = false;
function getInstance () {
if (!self:: un método mejor podría ser crear una clase singleton / estática para abstraer los detalles de verificar los datos de la solicitud.
Algo así como:
<*>
entonces puedes hacer:
<*>
Creo que esto hace que sus scripts individuales se carguen más y abstraiga la validación, etc. Además de un gran alcance con este diseño para extenderlo / agregar comportamientos alternativos, agregar un manejo predeterminado más complicado, etc., etc.
instance) {
$c = __CLASS__;
self:: un método mejor podría ser crear una clase singleton / estática para abstraer los detalles de verificar los datos de la solicitud.
Algo así como:
<*>
entonces puedes hacer:
<*>
Creo que esto hace que sus scripts individuales se carguen más y abstraiga la validación, etc. Además de un gran alcance con este diseño para extenderlo / agregar comportamientos alternativos, agregar un manejo predeterminado más complicado, etc., etc.
instance = new $c;
}
return self:: un método mejor podría ser crear una clase singleton / estática para abstraer los detalles de verificar los datos de la solicitud.
Algo así como:
<*>
entonces puedes hacer:
<*>
Creo que esto hace que sus scripts individuales se carguen más y abstraiga la validación, etc. Además de un gran alcance con este diseño para extenderlo / agregar comportamientos alternativos, agregar un manejo predeterminado más complicado, etc., etc.
instance;
}
function setDefaults($defaults) {
$this->defaults = $defaults;
}
public function __get($field) {
if (isset( un método mejor podría ser crear una clase singleton / estática para abstraer los detalles de verificar los datos de la solicitud.
Algo así como:
<*>
entonces puedes hacer:
<*>
Creo que esto hace que sus scripts individuales se carguen más y abstraiga la validación, etc. Además de un gran alcance con este diseño para extenderlo / agregar comportamientos alternativos, agregar un manejo predeterminado más complicado, etc., etc.
REQUEST[$field]) && !empty( un método mejor podría ser crear una clase singleton / estática para abstraer los detalles de verificar los datos de la solicitud.
Algo así como:
<*>
entonces puedes hacer:
<*>
Creo que esto hace que sus scripts individuales se carguen más y abstraiga la validación, etc. Además de un gran alcance con este diseño para extenderlo / agregar comportamientos alternativos, agregar un manejo predeterminado más complicado, etc., etc.
REQUEST[$field])) {
return un método mejor podría ser crear una clase singleton / estática para abstraer los detalles de verificar los datos de la solicitud.
Algo así como:
<*>
entonces puedes hacer:
<*>
Creo que esto hace que sus scripts individuales se carguen más y abstraiga la validación, etc. Además de un gran alcance con este diseño para extenderlo / agregar comportamientos alternativos, agregar un manejo predeterminado más complicado, etc., etc.
REQUEST['field'];
} elseif (isset($this->defaults[$field])) {
return $this->defaults[$field];
} else {
return ''; # define a default value here.
}
}
}
entonces puedes hacer:
<*>Creo que esto hace que sus scripts individuales se carguen más y abstraiga la validación, etc. Además de un gran alcance con este diseño para extenderlo / agregar comportamientos alternativos, agregar un manejo predeterminado más complicado, etc., etc.
Primero, use $ _POST
para las variables POST. $ _REQUEST
es una combinación de muchas variables entrantes diferentes, no solo $ _POST
y podría causar problemas.
Una solución para su pregunta sería crear una función que maneje la lógica isset ()
.
function ForceIncomingValue($Key, $Default) {
if (!isset( Primero, use $ _POST
para las variables POST. $ _REQUEST
es una combinación de muchas variables entrantes diferentes, no solo $ _POST
y podría causar problemas.
Una solución para su pregunta sería crear una función que maneje la lógica isset ()
.
<*>POST[$Key]))
return $Default;
else return Primero, use $ _POST
para las variables POST. $ _REQUEST
es una combinación de muchas variables entrantes diferentes, no solo $ _POST
y podría causar problemas.
Una solución para su pregunta sería crear una función que maneje la lógica isset ()
.
<*>POST[$Key];
}
en primer lugar, NUNCA use la variable $ _REQUEST, provocará errores y otros problemas durante el desarrollo
function getPOST($key) { if(isset(
en primer lugar, NUNCA use la variable $ _REQUEST, provocará errores y otros problemas durante el desarrollo
function getPOST($key, $default = NULL) { if(isset(en primer lugar, NUNCA use la variable $ _REQUEST, provocará errores y otros problemas durante el desarrollo
function getPOST($key) { if(isset(
en primer lugar, NUNCA use la variable $ _REQUEST, provocará errores y otros problemas durante el desarrollo
<*>
tenga en cuenta que este código deja la variable vacía cuando $ _POST [$ key]
no se configurótambién podría adaptar ese código para permitirle proporcionar un valor predeterminado (sensible) cuando el valor no se pudo cargar.
<*>POST[$key])) { returnen primer lugar, NUNCA use la variable $ _REQUEST, provocará errores y otros problemas durante el desarrollo
<*>
tenga en cuenta que este código deja la variable vacía cuando $ _POST [$ key]
no se configurótambién podría adaptar ese código para permitirle proporcionar un valor predeterminado (sensible) cuando el valor no se pudo cargar.
<*>POST[$key]; } }
tenga en cuenta que este código deja la variable vacía cuando $ _POST [$ key]
no se configuró
también podría adaptar ese código para permitirle proporcionar un valor predeterminado (sensible) cuando el valor no se pudo cargar.
<*>POST[$key])) { returnen primer lugar, NUNCA use la variable $ _REQUEST, provocará errores y otros problemas durante el desarrollo
function getPOST($key) { if(isset(
en primer lugar, NUNCA use la variable $ _REQUEST, provocará errores y otros problemas durante el desarrollo
<*>
tenga en cuenta que este código deja la variable vacía cuando $ _POST [$ key]
no se configurótambién podría adaptar ese código para permitirle proporcionar un valor predeterminado (sensible) cuando el valor no se pudo cargar.
<*>POST[$key])) { returnen primer lugar, NUNCA use la variable $ _REQUEST, provocará errores y otros problemas durante el desarrollo
<*>
tenga en cuenta que este código deja la variable vacía cuando $ _POST [$ key]
no se configurótambién podría adaptar ese código para permitirle proporcionar un valor predeterminado (sensible) cuando el valor no se pudo cargar.
<*>POST[$key]; } }
tenga en cuenta que este código deja la variable vacía cuando $ _POST [$ key]
no se configuró
también podría adaptar ese código para permitirle proporcionar un valor predeterminado (sensible) cuando el valor no se pudo cargar.
<*>POST[$key]; } else { return $default; } } tenga en cuenta que este código deja la variable vacía cuando $ _POST [$ key]
no se configuró
también podría adaptar ese código para permitirle proporcionar un valor predeterminado (sensible) cuando el valor no se pudo cargar.
<*>POST[$key])) { returnen primer lugar, NUNCA use la variable $ _REQUEST, provocará errores y otros problemas durante el desarrollo
<*> tenga en cuenta que este código deja la variable vacía cuando $ _POST [$ key]
no se configuró
también podría adaptar ese código para permitirle proporcionar un valor predeterminado (sensible) cuando el valor no se pudo cargar.
<*>POST[$key]; } } tenga en cuenta que este código deja la variable vacía cuando $ _POST [$ key]
no se configuró
también podría adaptar ese código para permitirle proporcionar un valor predeterminado (sensible) cuando el valor no se pudo cargar.
<*>¿Se conoce el conjunto de variables que espera en el momento de la escritura del script o desea hacer esto para un conjunto arbitrario de valores? Si lo primero es cierto, podría hacer algo como esto:
# 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 ( ¿Se conoce el conjunto de variables que espera en el momento de la escritura del script o desea hacer esto para un conjunto arbitrario de valores? Si lo primero es cierto, podría hacer algo como esto:
<*>
Básicamente, esto aprovecha la capacidad de PHP para evaluar variables para crear otras variables (de ahí el doble dólar para la clave $$; esto significa crear una nueva variable cuyo nombre es el valor de $ clave).
Todavía no he encontrado una buena solución para esta última situación.
REQUEST[$key])) $key = ¿Se conoce el conjunto de variables que espera en el momento de la escritura del script o desea hacer esto para un conjunto arbitrario de valores? Si lo primero es cierto, podría hacer algo como esto:
<*>
Básicamente, esto aprovecha la capacidad de PHP para evaluar variables para crear otras variables (de ahí el doble dólar para la clave $$; esto significa crear una nueva variable cuyo nombre es el valor de $ clave).
Todavía no he encontrado una buena solución para esta última situación.
REQUEST[$key];
else $key = $default;
}
Básicamente, esto aprovecha la capacidad de PHP para evaluar variables para crear otras variables (de ahí el doble dólar para la clave $$; esto significa crear una nueva variable cuyo nombre es el valor de $ clave).
Todavía no he encontrado una buena solución para esta última situación.
PHP nulo operador de coalescencia !
$ username = $ _GET ['usuario'] ?? 'nobody';
Para muchas variables, con una verificación de requisitos, cualquiera puede usar mi esperar
function .