Syntaxe de base PHP
6 Les variables
6.1 Le types numériques
Les types entier et décimal (nombre à virgule) sont les deux types numériques disponibles en PHP.
Le type entier permet la manipulation de valeurs numériques entières. Les entiers sont par défaut spécifiés en notation décimale (base 10). Les notations octale (faire précédez le nombre d'un zéro) et hexadécimale (faire précédez le nombre de 0x) sont également disponibles.
Exemple 1
<?php
$age=25;
$numero=1234;
$octus=012; //entier en base 8
$hexus=0xA; //entier en base 16
echo "age=$age,num=$numero, octus=$octus, hexus=$hexus";
?>
Le type décimal permet la manipulation de valeurs numériques décimales. Une notation classique et une notation exponentielle sont disponibles pour representer les valeurs décimales.
Exemple 2
<?php
$longueur=253.32; //notation classique
$largeur=25.332e1; //notation exponentielle
$hauteur=25332E-2; //notation exponentielle
echo "long=$largeur,largeur=$largeur, hauteur=$hauteur";
?>
Les opérateurs arithmétiques
Le tableau suivant liste les opérateurs arithmétiques disponibles.
Opérateur |
Exemple |
Description |
négation |
-$a |
Opérateur unaire négation |
addition |
$a + $b |
Opérateur binaire addition |
soustraction |
$a -$b |
Opérateur binaire soustraction |
multiplication |
$a * $b |
Opérateur binaire multiplication |
division |
$a / $b |
Opérateur binaire division |
modulo |
$a % $b |
Opérateur binaire reste division |
Les opérateurs d'assignation
Ils permettent d'assigner à une variable une valeur. L'opérateur d'assignation la plus simple est l'affectation (=). Il permet d'affecter à une variable* la valeur d'une expression.
Exemple 3
<?php
$longueur=25;
$largeur=20;
$perimetre=($longueur+$largeur)*2;
echo "Le perimetre est de $perimetre metres";
?>
Des opérateurs d'assignation plus complexe existent. Ces opérateurs combinent entre autres les opérateurs arithmétiques classiques (-,+,*,/, %) avec l'opérateur d'assignation simple. Les opérateurs d'assignation complexe sont à utiliser lorsque l'expression à assigner à une variable utilise elle même la valeur initiale de la variable.
Exemple 4
<?php
$longueur=25;
$largeur=20;
$largeur*=$longueur;
echo "La surface est de $largeur metre carree";
?>
Assignation par valeur et par référence
Par défaut PHP assigne les variables par valeur (on a deux variables avec la même valeur). Pour assigner une variable par référence (on a une variable avec deux noms différents) il faut la faire précéder du caractère &.
Exemple 5
<?php
$longueur=25;
$largeur=$longueur;
$longueur=27;
echo "La largeur est $largeur et la longueur est $longueur";
$longueur=25;
$largeur=&$longueur;
$longueur=27;
echo "La largeur est $largeur et la longueur est $longueur";
?>
Les opérateurs de comparaison
Les opérateurs de comparaison permettent de comparer deux valeurs. Le résultat d'une comparaison est de type booléen. Le tableau suivant présente les différents opérateurs de comparaison.
Opérateur |
Exemple |
Résultat |
Description |
== |
"10"==10 |
true |
égalité si même valeur sans tenir compte du type |
=== |
"10"===10 |
false |
égalité si types et valeurs identiques |
<>, != |
"10"!=10 |
true |
différent sans tenir compte du type |
!== |
"10"!==10 |
false |
différent si valeur ou type différent |
>, >= |
10 > 12 |
false |
supérieur et supérieur ou égal. |
<, <= |
10 <= 12 |
true |
inférieur et inférieur ou égal |
Les opérateurs d'incrémentation et de décrémentation
Il est possible d'utiliser en PHP les opérateurs d'incrémentation (++) et de décrémentation(--).
Exemple 6
<?php
$longueur=25;
$largeur=$longueur++;
echo "La largeur est $largeur et la longueur est $longueur";
$largueur--;
$largeur=++$longueur;
echo "La largeur est $largeur et la longueur est $longueur";
?>
Les opérateurs bit à bit
Les opérateurs sur les bits sont utilisés pour manipuler les bits d'un entier. Le tableau suivant liste les opérateurs sur les bits disponibles avec $x=2 et $y=3.
Opérateur |
Exemple |
Résultat |
Description |
& |
$x & $y |
2 |
bit à 1 dans $x et dans $y sont à 1 dans le résultat |
| |
$x | $y |
3 |
bit à 1 dans $x ou dans $y sont à 1 dans le résultat |
^ |
$x ^ $y |
1 |
bit à 1 dans $x ou dans $y mais pas dans les deux sont à 1 dans le résultat |
~ |
~$x |
-3 |
bit à zéro dans $x sont à 1 dans le résultat |
<< |
$x << $y |
16 |
décalage de $y bits de $x vers la gauche en complétant par des zéros. |
>> |
$x >> $y |
0 |
décalage de $y bits de $x vers la droite en complétant par des zéros. |
PHP dispose de nombreuses fonctions mathématiques qui manipulent et produisent des nombres entiers et décimaux. Le tableau suivant en liste quelques unes avec des exemples d'utilisation.
Fonctions |
Exemple |
Résultat |
Description |
abs |
abs(-5) |
5 |
valeur absolue d’un nombre |
ceil |
ceil(2.4) |
3 |
entier supérieur |
floor |
floor(2.6) |
2 |
entier inférieur |
fmod |
fmod(7.2,2) |
1.2 |
reste decimal d’une division à résultat entier |
max, min |
max(10,12.3,1) |
12.3 |
plus grande valeur (utilisation possible d’un tableau). |
pow |
pow(10,2) |
100 |
puissance d’un nombre |
rand |
rand(1,9) |
3 |
valeur aléatoire entre un min (0) et un max optionnels |
round |
round(1.3481,2) |
1.35 |
valeur arrondie avec une précision optionnelle |
sqrt |
sqrt(9) |
3 |
racine carrée |
Remarques
- Les nombres décimaux ont une précision limitée. Pour plus de précision il est recommandé d'utiliser les fonctions mathématiques de précision (bcadd, bcmul, bcmod, ...) et les fonctions gmp (gmp_add,gmp_mul, gmp_mod,...).
Applications
- Dans un repertoire atelier3 à la racine du documentRoot créer pour chaque exemple un fichier php (exemple1.php, exemple2.php, ...).
- Créer dans le repertoire atelier3 les fichiers bit.php et math.php pour respectivement tester les opérateurs bit à bit et les fonctions mathématiques.