w3schools empty array _get php if-statement notice

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