Abr lass dich davon nicht verwirren. So ist es und vermutlich wird PHP irgendwann auch solche Kinderkrankheiten ablegen.
Mehr als fraglich, denn die Typenlosigkeit ist essentieller Bestandteil von PHP, wie übrigens auch anderer Sprachen, die schnell und einfach zum Ergebnis führen sollen (Stichwort: BASIC).
Die Typenlosigkeit ist nicht das Problem, aber diese flickenartige Umsetzung, diese exotischen Operatoren === mit ihren noch exotischeren Aufgaben, die dann zu den exotischsten Konstrukten (wie der besprochene) führen.
In Perl kann ich schreiben:
while(defined( my $file = readdir( $handle ) ){
Warum geht in PHP nicht:
while(isset( $file = readdir( $handle ) )
? PHP hat nun wirklich kein Programmierkonzept neu erfunden. Was PHP kann, ist bekannt: schlichte prozedurale Programmierung und OO. Warum braucht PHP dann einen === Operator und Java nicht, warum hat Perl keinen, warum hat Python keinen? Weil er überflüssig ist.