As strings sempre avaliam como boolean true, a menos que tenham um valor considerado "vazio" pelo PHP (extraído da documentação deempty
):
""
(uma string vazia);
"0"
(0 como uma string)
Se você precisar definir um valor booleano com base no valor do texto de uma string, precisará verificar a presença ou não desse valor.
$test_mode_mail = $string === 'true'? true: false;
EDIT: o código acima destina-se à clareza de entendimento. No uso real, o código a seguir pode ser mais apropriado:
$test_mode_mail = ($string === 'true');
ou talvez o uso da filter_var
função possa cobrir mais valores booleanos:
filter_var($string, FILTER_VALIDATE_BOOLEAN);
filter_var
abrange toda uma gama de valores, incluindo os valores truthy "true"
, "1"
, "yes"
e "on"
. Veja aqui para mais detalhes.