Maison >développement back-end >Problème PHP >PHP est-il un langage fortement typé ?

PHP est-il un langage fortement typé ?

王林
王林original
2019-09-19 17:56:594099parcourir

PHP est-il un langage fortement typé ?

PHP est un langage faiblement typé

On note qu'il n'est pas nécessaire de déclarer le type de données de la variable à PHP.

PHP convertira automatiquement la variable dans le type de données correct en fonction de sa valeur. Dans un langage de programmation fortement typé, il faut déclarer (définir) le type et le nom de la variable avant de l'utiliser.

1. Définissez d'abord quelques concepts de base

Erreurs de programme

erreurs piégées. Oblige le programme à mettre fin à l'exécution, comme la division par 0, les erreurs d'accès hors limites du tableau non interceptées en Java. L'exécution continue après une erreur, mais un comportement arbitraire peut survenir. Par exemple, débordement de tampon en C, Aller à une mauvaise adresse

Comportements interdits

Lors de la conception d'un langage, vous pouvez définir un ensemble de comportements interdits. Il doit inclure tous les comportements interdits. erreurs non piégées, mais il peut contenir des erreurs piégées.

Bien comporté, mal comporté

bien comporté : Si les comportements interdits ne sont pas possibles pendant l'exécution du programme, il se comporte bien .

mauvais comportement : Sinon, il se comporte mal...

2 Avec les concepts ci-dessus, discutons des types forts et faibles, des types statiques et dynamiques

Types forts et faibles

Fortement typés : Si tous les programmes d'un langage se comportent bien - c'est-à-dire que les comportements interdits sont impossibles, alors le langage est fortement typé.

Faiblement typé : Sinon, il est faiblement typé. Par exemple, le débordement de tampon en langage C appartient aux erreurs piégées, c'est-à-dire aux comportements interdits. Par conséquent, C est une personne faiblement typée. Comme les personnes précédentes l'ont également dit, les langages faiblement typés ont une vérification de type moins stricte, comme la préférence. pour tolérer les conversions de type implicites. Par exemple, int en langage C peut être transformé en double. Le résultat est : il est facile de produire des comportements interdits, donc c'est faiblement typé

type dynamique et statique

type statique statiquement : Si des programmes mal comportés sont rejetés au moment de la compilation, ils sont typés statiquement ;

Typés dynamiquement de manière dynamique  : Si les mauvais comportements sont rejetés au moment de l'exécution, ils sont typés dynamiquement.

3. Malentendu Tout le monde pense que le langage C doit écrire int a, int b et autres, mais Python n'a pas besoin d'écrire (vous pouvez écrire a, b directement ), donc C est statique, Python est dynamique. Cette compréhension n’est pas assez précise. Par exemple, Ocaml est typé statiquement, mais il n'est pas nécessaire de l'écrire explicitement. Ocaml est un type implicite statique

Les types statiques peuvent être divisés en deux types : Si le type fait partie de la syntaxe du langage, il s'agit d'un type explicite explicitement typé si le ; Le type est compilé par Derivation est un type implicite typé implicite, tel que ML et Haskell

4 Voici quelques exemplesnon typé : Assembly
Type faible, type statique : C/C++<.> Typage faible, vérification de type dynamique : Perl/PHP
Typage fort, vérification de type statique : Java/C#
Typage fort, vérification de type dynamique : Python, Scheme
Typage explicite statique : Java/C
Types implicites statiques : Ocaml, Haskell

Le contenu ci-dessus est à titre de référence uniquement !

Tutoriel recommandé :

Tutoriel vidéo PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn