ejemplo - operador ternario php
¿Por qué mi expresión ternaria no funciona? (4)
El valor de ''falso'' es verdadero. Debes eliminar las comillas
$canMerge = ($condition1 && $condition2) ? true : false;
Intento establecer un indicador para mostrar u ocultar un elemento de página, pero siempre se muestra incluso cuando la expresión es falsa.
$canMerge = ($condition1 && $condition2) ? ''true'' : ''false'';
...
<?php if ($canMerge) { ?>Stuff<?php } ?>
¿Que pasa?
Esto está roto porque ''falso'' como una cadena evaluará a verdadero como un booleano.
Sin embargo, esta es una expresión ternaria innecesaria, porque los valores resultantes son simples verdaderos y falsos. Esto sería equivalente:
$canMerge = ($condition1 && $condition2);
Me parece una pregunta razonable, especialmente debido a la discrepancia en la forma en que funciona PHP.
Por ejemplo, el siguiente código generará ''es falso''
$a = ''0'';
if($a)
{
echo ''its true'';
}
else
{
echo ''its false'';
}
$canMerge = ($condition1 && $condition2);
entonces
if ($canMerge){
echo "Stuff";
}