Que "chaine"+1 soit légal n'est en effet pas caractéristique de la faiblesse du typage. Par contre, ce qui le serait, c'est si tu pouvais écrire :
$a="chaine"
gettype(a) // repond string
$a=1
gettype(a) // repond int
(Est-ce possible ? perso j'en sais rien je connais pas PHP)
Un typage fort devrait soit :
- t'interdire la seconde affectation parceque "int" c'est pas "string" (ni un de ses éventuels sous-type si le langage possède ce genre de notion, comme en objet)
- soit te répondre avec par type composé genre "string U int" pour les deux gettype (cette 2ème hypothèse étant bien sûr comme je la présente là un peu bidon... Inférer systématiquement des unions dès que nécéssaire, c'est un peu tuer l'idée de vérifier une certaine cohérence des types. Mais par contre, avec possibilité de déclarations explicites, ça le fait.)
[^] # Re: Ruby On Rails
Posté par tgl . En réponse à la dépêche Support d'Ajax dans Ruby on Rails. Évalué à 4.
$a="chaine"
gettype(a) // repond string
$a=1
gettype(a) // repond int
(Est-ce possible ? perso j'en sais rien je connais pas PHP)
Un typage fort devrait soit :
- t'interdire la seconde affectation parceque "int" c'est pas "string" (ni un de ses éventuels sous-type si le langage possède ce genre de notion, comme en objet)
- soit te répondre avec par type composé genre "string U int" pour les deux gettype (cette 2ème hypothèse étant bien sûr comme je la présente là un peu bidon... Inférer systématiquement des unions dès que nécéssaire, c'est un peu tuer l'idée de vérifier une certaine cohérence des types. Mais par contre, avec possibilité de déclarations explicites, ça le fait.)