Рядки завжди оцінюють як булеві істинні, якщо вони не мають значення, яке PHP вважає "порожнім": взято з документації наempty
:
""
(порожній рядок);
"0"
(0 як рядок)
Якщо вам потрібно встановити булеве значення на основі текстового значення рядка, вам потрібно буде перевірити наявність чи інше цього значення.
$test_mode_mail = $string === 'true'? true: false;
EDIT: наведений вище код призначений для ясності розуміння. У фактичному використанні наступний код може бути більш підходящим:
$test_mode_mail = ($string === 'true');
або, можливо, використання filter_var
функції може охопити більше булевих значень:
filter_var($string, FILTER_VALIDATE_BOOLEAN);
filter_var
охоплює весь діапазон значень, в тому числі значень truthy "true"
, "1"
, "yes"
і "on"
. Дивіться тут для більш детальної інформації.