20-11-2008, 11:43 PM
(Modification du message : 21-11-2008, 12:56 AM par Sephi-Chan.)
Donc, allons-y ! Du typage en PHP et comment l'utiliser.
Vous le savez probablement, PHP n'est pas un langage typé. Par ce terme, on entends qu'il n'est pas nécessaire, contrairement à la plupart des langages (au hasard, C, C++, Visual Basic...) de définir le type des variables, et donc de définir quelle catégories de données elles peuvent accueillir.
C'est une facilité de programmation pour nous, programmeurs, mais c'est aussi une faille de sécurité très importantes. C'est pourquoi il est nécessaire, pour assurer la sécurité d'une application web (au hasard, un jeu...) d'utiliser un typage strict, c'est à dire de savoir précisément, à tout moment, quel type de valeur contient une variable.
Les différents types
Même si PHP ne demande pas de typage explicite, il gère de manière interne plusieurs types de variables différents. Je les rappellent rapidement ; pour plus de détails, voir le chapitre types du manuel PHP.
Types basiques
Les types les plus simples sont au nombre de quatre. Basiquement, une variable de l'un de ces types est une variable contenant une seule valeur. Il y en a quatre :
Boolean
Les Boolean (ou booléens en français) sont les valeurs binaires ; il y a donc deux valeurs possibles pour une variable de ce type, true et false.
Entiers
Les nombres entiers sont des... nombres entiers ! Ils sont signés par défaut (php ne supporte pas les entiers non signés), ce qui signifie qu'ils peuvent aller dans les nombres négatifs (en d'autres termes, -1 n'est pas égal à 1, alors que dans le cas d'entiers non-signés, -1 n'a pas de sens et est égal à 1).
Il faut noter qu'il existe une valeur maximum pour un entier, c'est à dire un chiffre au-delà duquel un nombre ne sera plus un nombre entier mais un nombre à virgule flottante. Ce nombre varie selon les systèmes d'exploitations, mais en général il est un peu au-dessus de 2 milliard (c'est la taille d'un entier codé sur 32 bits). Pour connaitre la taille maximum d'un entier sur votre système, il suffit de regarder la variable PHP_INT_MAX.
Les entiers peuvent être définis de plusieurs manières, en fonction de la base que l'on souhaite employer (ceux qui sont en spé maths vont adorer). Notez que l'affichage se fait toujours en base 10 lorsqu'on fait un echo :
- En tant qu'entier normal, base décimal donc :
Vous le savez probablement, PHP n'est pas un langage typé. Par ce terme, on entends qu'il n'est pas nécessaire, contrairement à la plupart des langages (au hasard, C, C++, Visual Basic...) de définir le type des variables, et donc de définir quelle catégories de données elles peuvent accueillir.
C'est une facilité de programmation pour nous, programmeurs, mais c'est aussi une faille de sécurité très importantes. C'est pourquoi il est nécessaire, pour assurer la sécurité d'une application web (au hasard, un jeu...) d'utiliser un typage strict, c'est à dire de savoir précisément, à tout moment, quel type de valeur contient une variable.
Les différents types
Même si PHP ne demande pas de typage explicite, il gère de manière interne plusieurs types de variables différents. Je les rappellent rapidement ; pour plus de détails, voir le chapitre types du manuel PHP.
Types basiques
Les types les plus simples sont au nombre de quatre. Basiquement, une variable de l'un de ces types est une variable contenant une seule valeur. Il y en a quatre :
Boolean
Les Boolean (ou booléens en français) sont les valeurs binaires ; il y a donc deux valeurs possibles pour une variable de ce type, true et false.
Entiers
Les nombres entiers sont des... nombres entiers ! Ils sont signés par défaut (php ne supporte pas les entiers non signés), ce qui signifie qu'ils peuvent aller dans les nombres négatifs (en d'autres termes, -1 n'est pas égal à 1, alors que dans le cas d'entiers non-signés, -1 n'a pas de sens et est égal à 1).
Il faut noter qu'il existe une valeur maximum pour un entier, c'est à dire un chiffre au-delà duquel un nombre ne sera plus un nombre entier mais un nombre à virgule flottante. Ce nombre varie selon les systèmes d'exploitations, mais en général il est un peu au-dessus de 2 milliard (c'est la taille d'un entier codé sur 32 bits). Pour connaitre la taille maximum d'un entier sur votre système, il suffit de regarder la variable PHP_INT_MAX.
Les entiers peuvent être définis de plusieurs manières, en fonction de la base que l'on souhaite employer (ceux qui sont en spé maths vont adorer). Notez que l'affichage se fait toujours en base 10 lorsqu'on fait un echo :
- En tant qu'entier normal, base décimal donc :
Code PHP :
<?php
$entier = 12;
echo $entier; // Affichera 12
$entier = -3;
echo $entier; // Affichera -3
?>
- En tant qu'entier en base octal, donc en base 8 (0 1 2 3 4 5 6 7 10 11 12 13 etc.) ; dans ce cas il faut faire précéder notre entier par un 0 :
Code PHP :
<?php
$entier = 012;
echo $entier; // Affichera 10
?>