Quand on dit qu'il retourne du HTML c'est un peu faux c'est vrai mais la valeur qu'il retourne (si il retourne une valeur) est interpretée comme du simple texte par le navigateur.
Le code HTML c'est les balises, pas le texte qu'il y a entre. Enfin on se comprend. :P
C'est surtout que javascript est inteprété niveau client alors que le PHP lui est interpreté coté serveur; ce sont 2 langages qui ont leur propre but. Si le but est de faire une "animation" sur une partie de la page, javascript est quasi indispensable et ce n'est certainement pas en PHP qui sera capable de ça (puisque lui sera interprété AVANT, or l'animation doit se faire au moment où l'utilisateur clique, survole etc, donc elle ne peut se faire que du coté client; d'où le javascript).
PHP non plus n'offre aucune interaction avec l'internaute (dans le sens où ça ne sera jamais le navigateur qui l'interprétera). En bref si le but est une interaction avec le serveur; PHP (ou tout autre langage pouvant agir avec le serveur, en bref une grande majorité), si il faut interagir avec le navigateur du client; javascript.
- HTML: balisage
- CSS: Style de la page (couleurs, polices, dimensions, image de fond etc, le "design" quoi)
- javascript: langage de programmation coté CLIENT
- PHP: langage de programmation coté SERVEUR
Si tu n'arrives pas à comprendre ça, alors relis jusqu'à ce que tu comprennes car c'est un fondement de la création de site, si tu ne piges pas ça tu risques de ne pas piger le reste, ou en tout cas ne pas savoir quoi utiliser de quel coté et donc ne pas comprendre ce que tu fais.