2011-03-08 10 views

Respuesta

33

El empty() function hará el trabajo.

lo uso con el operador not (!) para probar "si no está vacío", es decir

if(!empty($var)){ 

} 
+6

'empty' activará una advertencia de PHP si la variable no está configurada. 'isset' no dispara una advertencia. –

+2

@Kevin Peno No, no lo hará. De la documentación: 'empty() es lo opuesto a var (booleano), excepto que no se genera ninguna advertencia cuando la variable no está configurada. – phihag

+0

@Kevin peno no estoy de acuerdo con la advertencia generada. Mira eso> http://fr.php.net/manual/en/function.empty.php#82942 – Artusamak

0

No sé si ya existe uno exacto, pero podría escribir fácilmente una función personalizada para manejar esto.

function isset_and_true($var) { 
    return (isset($var) && $var == true) ? true : false; 
} 

if (isset_and_true($a)) { 
    print "It's set!"; 
} 
+0

Usted ¿se da cuenta de que el bit "== verdadero" en "&& $ var == verdadero" es completamente innecesario? (A menos, por supuesto, que desee verificar la equivalencia de tipo con "&& $ var === verdadero".) –

+0

'((boolean) $ x)? true: false' es una tautología – phihag

+1

esto generaría una advertencia al pasar $ a si no está configurada – dynamic

7

ya está. Deberias hacer eso.

if (isset($var) && $var) 
0
isset($a{0}) 

isset y Len no es 0 parece más fiable para mí, si ejecuta la siguiente:

<?php 
$a=$_REQUEST['a']; 

if (isset($a{0})) { // Returns "It's 0!!" when test.php?a=0 
//if (!empty($a)) { // Returns "It's empty!!" when test.php?a=0 
    echo 'It\'s '.$a; 
} else { echo 'It\'s empty'; } 

?> 
-1

Comprueba si la variable está establecida y es verdadera. Ignorar mensaje de advertencia

if(@!empty($foo)) 
+2

esto no es necesario. Vacío no desencadenará ningún error – dynamic

2

Parece que @phihag y @ steveo225 son correctos.

Determine si una variable se considera vacía. Una variable es considerada vacía si no existe o si su valor es igual a FALSE. empty() no genera una advertencia si la variable no existe.

No se genera ninguna advertencia si la variable no existe. Eso significa empty() es esencialmente el conciso equivalente a !isset($var) || $var == false.

Por lo tanto, parece !empty($var) sería el equivalente a isset() && $var == true.

http://us2.php.net/empty

0

Usted puede utilizar el ?? operador, tales como:

if($var ?? false){ 
    ... 
} 

Lo que esto hace es $var comprueba si está ajustado y mantener su valor.En caso contrario, la expresión se evalúa como segundo parámetro, en este caso false, pero podría ser el uso de otras maneras, como:

// $a is not set 
$b = 16; 

echo $a ?? 2; // outputs 2 
echo $a ?? $b ?? 7; // outputs 16 

Más información aquí: https://lornajane.net/posts/2015/new-in-php-7-null-coalesce-operator

0
$a = new stdClass; 

$a->var_false = false; 
$a->var_true = true; 

if ($a->notSetVar ?? false) { 
    echo 'not_set'; 
} 

if ($a->var_true ?? false) { 
    echo 'var_true'; 
} 

if ($a->var_false ?? false) { 
    echo 'var_false'; 
} 
+0

Si bien este fragmento de código puede ser la solución, [incluyendo una explicación] (// meta.stackexchange.com/questions/114762/explaining-entirely-coded-based-answers) realmente ayuda a mejorar la calidad de tu publicación Recuerde que usted está respondiendo la pregunta a los lectores en el futuro, y es posible que esas personas no sepan los motivos de su sugerencia de código. – yivi

Cuestiones relacionadas