Строки всегда оцениваются как логическое значение true, если только они не имеют значения, которое PHP считает «пустым» (взято из документации дляempty
):
""
(пустая строка);
"0"
(0 как строка)
Если вам нужно установить логическое значение, основанное на текстовом значении строки, вам нужно будет проверить наличие или нет этого значения.
$test_mode_mail = $string === 'true'? true: false;
РЕДАКТИРОВАТЬ: приведенный выше код предназначен для ясности понимания. При фактическом использовании следующий код может быть более подходящим:
$test_mode_mail = ($string === 'true');
или, возможно, использование filter_var
функции может охватывать больше логических значений:
filter_var($string, FILTER_VALIDATE_BOOLEAN);
filter_var
охватывает весь диапазон значений, в том числе значений truthy "true"
, "1"
, "yes"
и "on"
. Смотрите здесь для более подробной информации.