String selalu mengevaluasi ke boolean true kecuali mereka memiliki nilai yang dianggap "kosong" oleh PHP (diambil dari dokumentasi untukempty ):
"" (string kosong);
"0" (0 sebagai string)
Jika Anda perlu menetapkan boolean berdasarkan nilai teks dari suatu string, maka Anda harus memeriksa keberadaan atau nilai tersebut.
$test_mode_mail = $string === 'true'? true: false;
EDIT: kode di atas dimaksudkan untuk kejelasan pemahaman. Dalam penggunaan aktual, kode berikut mungkin lebih sesuai:
$test_mode_mail = ($string === 'true');
atau mungkin penggunaan filter_varfungsi dapat mencakup lebih banyak nilai boolean:
filter_var($string, FILTER_VALIDATE_BOOLEAN);
filter_varmencakup seluruh rentang nilai, termasuk nilai-nilai truthy "true", "1", "yes"dan "on". Lihat di sini untuk detail lebih lanjut.