PHP Type-Cast Confusion

Tengo el siguiente código:

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

    var_dump($res);
?>

Siempre tuve la impresión de que $ res debería ser 'falso', como en la expresión anterior, PHP intentaría escribir cast $ val al tipo booleano (donde cero se convertirá como falso) y una cadena (la cadena no vacía es verdadera). Pero si ejecuto el código anterior, la salida será:

boolean true

¿Me estoy perdiendo de algo? Gracias.

Respuestas a la pregunta(3)

Su respuesta a la pregunta