Zamieszanie typu PHP

Mam następujący kod:

<?php
    $val = 0;
    $res = $val == 'true';

    var_dump($res);
?>

Zawsze miałem wrażenie, że $ res powinno być „fałszywe”, tak jak w powyższym wyrażeniu PHP próbowałoby wpisać cast $ val do typu boolowskiego (gdzie zero zostanie przekonwertowane na false), a ciąg (niepusty ciąg jest prawdą). Ale jeśli wykonam powyższy kod, wyjście będzie:

boolean true

Czy czegoś mi brakuje? Dzięki.

questionAnswers(3)

yourAnswerToTheQuestion