Le gros problème de PHP c'est qu'il n'y a pas des exceptions partout. Toutes les fatal error devraient être remplacées par des exceptions si on voulait en faire un vrai langage objet. Ou au moins les erreurs dans le cadre de la POO, typiquement
Code PHP :
<?php
$o = new stdClass;
$o->coucou();
Citation :Fatal error: Call to undefined method stdClass::coucou() in Command line code on line 1C'est nul... Ça devrait lever une exception, afin de rester dans un modèle objet cohérent. Dans tout vrai langage objet on a les erreurs "dures" qui relèvent de la compilation (parse error, strict warning, etc...) les erreurs "douces" (notice & warning), mais toutes les erreurs fatales au runtime sont des exceptions (surtout pour un langage interprété). Mais bon, on ne va pas refaire PHP hein
De toute façon, le meilleur langage objet, c'est Python (et juste derrière, Javascript ^^)
Plus sérieusement, mon intérvention peut sembler un peu HS, mais elle est surtout là pour prévenir qu'il ne faut pas s'étonner de certaines incohérences du langage, il traine un lourd passif de langage procédure "bricolo" que les dév's n'ont pas encore été prets à abandonner.