SashokSmir
@SashokSmir
Инженер

Почему в PHP строка '0' приводится в false, а не true?

Вопрос по приведению из строки в логический тип.

$s = '0';
$b = (bool)$s; // $b === false

Согласно документации PHP, строка '0' приводится к FALSE при приведении к boolean. Почему строка с одном нулем переводится в FALSE? Разве не логичнее, чтобы все строки, в которых есть хоть один символ и неважно какой символ, должны быть TRUE. Например, строка 'false' при приведении к boolean превращаются в TRUE.

С чем связана данная особенность?

P.S. Я бы подумал, что приведение идет через integer:

// string > integer > boolean
'0' > 0 > false

Но не сходится, т.к.:

$s = '00';
$i = (int)$s; // $int === 0
$b = (bool)$s; // $b === true
  • Вопрос задан
  • 992 просмотра
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы