php - empty - Verifique si existe una variable y=== verdadero
php isset $_get (3)
Alternativa, solo por diversión
echo isItSetAndTrue(''foo'', array(''foo'' => true))."<br />/n";
echo isItSetAndTrue(''foo'', array(''foo'' => ''hello''))."<br />/n";
echo isItSetAndTrue(''foo'', array(''bar'' => true))."<br />/n";
function isItSetAndTrue($field = '''', $a = array()) {
return isset($a[$field]) ? $a[$field] === true ? ''it is set and has a true value'':''it is set but not true'':''does not exist'';
}
resultados:
it is set and has a true value
it is set but not true
does not exist
Sintaxis alternativa también:
$field = ''foo'';
$array = array(
''foo'' => true,
''bar'' => true,
''hello'' => ''world'',
);
if(isItSetAndTrue($field, $array)) {
echo "Array index: ".$field." is set and has a true value <br />/n";
}
function isItSetAndTrue($field = '''', $a = array()) {
return isset($a[$field]) ? $a[$field] === true ? true:false:false;
}
Resultados:
Array index: foo is set and has a true value
Quiero verificar si:
- un campo en la matriz isset
- el campo === verdadero
¿Es posible verificar esto con una declaración if
?
Comprobando si ===
haría el truco pero se lanza un aviso de PHP. ¿Realmente tengo que verificar si el campo está establecido y luego si es verdadero?
Creo que esto debería hacer el truco ...
if( !empty( $arr[''field''] ) && $arr[''field''] === true ){
do_something();
}
Si lo quieres en una sola declaración :
if (isset($var) && ($var === true)) { ... }
Si lo quieres en una sola condición :
Bueno, podrías ignorar el aviso (también conocido como eliminarlo de la pantalla usando la función error_reporting()
).
O podrías suprimirlo con el malvado personaje @
:
if (@$var === true) { ... }
Esta solución NO ES RECOMENDADA