PHP a presque la même chose en fait, et ça ne me gène pas, c'est le principe du typage dynamique et de l'égalité via la manipulation de type (=

.
C'est quelque chose de bien utile quand on sait comment l'utiliser. Pour exemple j'utilise beaucoup
empty($var) qui retourne true si la variable est non-initialisée, array vide, string vide (ce qui comprend aussi bien l'absence de caractères que la présence stricte de caractères d'espacement), false, 0, "0". L'important est de savoir ce qu'on veut récupérer.
En revanche, petite différence sur l'exemple JS, PHP a un false pour
[] == 0. Étant donné le reste et l'exemple de
empty($var), je trouve cela un brin illogique avec le reste.

« Nous avons propagé sur Extranet une histoire fabriquée de toutes pièces selon laquelle une certaine disposition d'étoiles, vue depuis la planète d'origine des butariens, formaient le visage d'une déesse galarienne.
Sans chercher à vérifier ces informations, certains ont décrété que c'était la preuve de l'existence de la déesse. Ceux qui notaient le manque de preuves se faisaient attaquer. »
— Legion, geth trolleur à portée galactique