Las cadenas siempre se evalúan como verdaderas booleanas a menos que tengan un valor que PHP considere "vacío" (tomado de la documentación deempty
):
""
(una cadena vacía);
"0"
(0 como una cadena)
Si necesita establecer un valor booleano basado en el valor de texto de una cadena, deberá verificar la presencia o no de ese valor.
$test_mode_mail = $string === 'true'? true: false;
EDITAR: el código anterior está destinado a la claridad de la comprensión. En uso real, el siguiente código puede ser más apropiado:
$test_mode_mail = ($string === 'true');
o tal vez el uso de la filter_var
función puede cubrir más valores booleanos:
filter_var($string, FILTER_VALIDATE_BOOLEAN);
filter_var
abarca toda una serie de valores, incluyendo los valores Truthy "true"
, "1"
, "yes"
y "on"
. Ver aquí para más detalles.