Les Variables en PHP 1. Qu'est ce qu'une variable
En PHP comme dans tous les langages, la notion de variable est essentielle. Une variable est le nom donné à un paramètre fixé par le programmeur afin de l'utiliser à plusieurs endroits, ou dans le but de faciliter la lecture du programme. Ainsi, l'exemple simple suivant <?php Peut s'écrire
echo "hello world !"; ?> <?php
où $mavariable est une variable simple de nom "mavariable". On peut donner le nom
qu'on souhaite à une variable, tant qu'on utilise les caractères alphanumériques
(a-z, A-Z, 0-9, _, -) et qu'elle commence par le caractère "$".$mavariable = "hello world !"; echo $mavariable; ?> Pour donner une valeur à une variable, il suffit d'utiliser le "=" qui correspond à une affectation, c'est à dire qu'on dit à PHP que $mavariable prend pour valeur "hello world !". La valeur de $mavariable ne changera pas dans la page, à moins qu'on le fasse nous-mêmes. Tous les autres caractères ne sont pas forcément interdits, mais fortement déconseillés... Dans cet exemple, l'utilisation d'une variable n'est pas forcement très utile. On va donc faire un autre exemple. Si vous voulez afficher le résultat de toutes les opérations numériques de 2 nombres, on peut écrire : <?php ou :
echo "3*5=".(3*5)."<br>3/5=".(3/5)."<br>3+5=".(3+5)."<br>3-5=".(3-5); ?> <?php $v1 = 3; $v2 = 5; echo "$v1*$v2=".($v1*$v2)."<br>$v1/$v2=".($v1/$v2)."<br>$v1+$v2=".($v1+$v2)."<br>$v1-$v2=".($v1-$v2); ?> Vous vous dites sûrement que la seconde est plus compliquée... Maintenant, dites vous que vous voulez changer 3 et mettre 4 à la place ! Le second cas est donc nettement plus simple à maintenir et à changer... 2. Les variables simples
2. 1. Types de variables
Voici différents types de variables simples :
Même si cette notion est aujourd'hui assez sensible à comprendre pour les débutants, elle est très importante, mais elle rentrera à force de s'en servir. 2. 2. Opérations sur les variables
2.2.1. Opérations classiques
Pour affecter un résultat à une variable, il suffit d'appliquer le même principe que pour lui fixer un valeur : <?php Donne comme résultat :$v1 = 5; $v2 = 3; $v30 = $v1*$v2; $v31 = $v30/$v2; $v32 = $v1+$v2; $v33 = $v1-$v2; $v34 = $v1%$v2; echo "$v30 = $v1*$v2;<br>$v31 = $v30/$v2;<br>$v32 = $v1+$v2;<br> $v33 = $v1-$v2;<br>$v34 = $v1%$v2;<br>"; $v4 = "première partie de la phrase"; $v5 = " deuxième partie de la phrase"; $v6 = $v4.$v5; echo "$v6 = <br>$v4.$v5"; ?> 15 = 5*3; 5 = 15/3; 8 = 5+3; 2 = 5-3; 2 = 5%3; première partie de la phrase deuxième partie de la phrase = première partie de la phrase. deuxième partie de la phrase 2.2.2. Détails sur les opérations
<?php Affiche :$v1 = 5; $v2 = 3; $v3 = "4"; $v4 = "première partie de la phrase"; $v5 = ' deuxième partie de la phrase'; $result1 = $v1*$v2; $result2 = $v1+$v3; $result3 = $v1.$v3; $result4 = $v1.$v2; $result5 = $v4.$v5; $result6 = $v4+$v5; $result7 = $v3.$v5; $result8 = $v3+$v5; $result9 = $v2.$v5; $result10 = $v2+$v5; echo "$v1*$v2 = $result1<br>\n"; echo "$v1+$v3 = $result2<br>\n"; echo "$v1.$v3 = $result3<br>\n"; echo "$v1.$v2 = $result4<br>\n"; echo "$v4.$v5 =<br> $result5<br>\n"; echo "$v4+$v5 = $result6<br>\n"; echo "$v3.$v5 = $result7<br>\n"; echo "$v3+$v5 = $result8<br>\n"; echo "$v2.$v5 = $result9<br>\n"; echo "$v2+$v5 = $result10<br>\n"; ?> 5*3 = 15 On voit alors que les opérations classiques pour les nombres sont applicables, qu'ils aient été saisis
en tant que valeur numérique (cas de $v1) ou en tant que chaîne de caractères (cas de $v3).
On voit également que si on utilise l'opérateur ".", le résultat est toujours la concaténation des
variables !5+4 = 9 5.4 = 54 5.3 = 53 premiere partie de la phrase. deuxieme partie de la phrase = premiere partie de la phrase deuxieme partie de la phrase premiere partie de la phrase+ deuxieme partie de la phrase = 0 4. deuxieme partie de la phrase = 4 deuxieme partie de la phrase 4+ deuxieme partie de la phrase = 4 3. deuxieme partie de la phrase = 3 deuxieme partie de la phrase 3+ deuxieme partie de la phrase = 3 2.2.3. Opérations sur les chaines de caractères
Les chaines de caractères disposent d'un grand nombre de fonction qui leur sont spécifiques. Les plus pratiques ou les plus utiles (selon moi) sont présentées ci-dessous, dans ce tableau récapitulatif.
2. 3. les variables booléennes
Une variable booléenne peut prendre seulement 2 valeurs : "true" ou "false" ("vrai" ou "faux"). Cette variable n'a pas encore d'intérêt, mais elle en prendra plus tard (lorsqu'on étudiera les instructions spécifiques du PHP). Attention, il ne faut pas mettre les guillemets, ce n'est pas une chaîne de caractères, mais une valeur spécifique. On verra plus tard qu'une variable booléenne peut contenir le résultat d'une expression logique, c'est à dire de toutes opérations ayant un résultat logique. 2. 4. Exercice
Reprenez le fichier "exemple.php" et remplacez dedans les valeurs numériques par des variables contenant la même valeur. - une variable "$ligne" qui contient le texte, - une variable $v1 qui contient 10, - une variable $v2 qui contient 5, - une variable $v3 qui contient 52, - une variable $v4 qui contient 3 - faire les opérations sur les variables et pas sur les valeurs directement Solution 3. Les variables tableaux
3. 1. Présentation des tableaux
Un tableau est l'équivalent de plusieurs variables regroupées en une seule. Par exemple, vous avez besoin d'une variable $coeff1 qui contiennent plusieurs valeurs numérique, ou d'un tableau $coeff2 contenant plusieurs mots. Nous allons voir comment utiliser les tableaux. Pour "les tableaux associatifs", allez à la partie suivante sur les "variables structurées". 3.1.1. Initialisation
Première méthode : <?php $coeff1[0] = 3; $coeff1[1] = 8; $coeff1[2] = 17; $coeff2[0] = "bonjour"; $coeff2[1] = "bonsoir"; $coeff2[2] = "salut"; ?> Cette méthode permet de fixer une valeur directement à une case du tableau. Pour accéder à une case, il suffit de mettre le nom de la variable suivie du numéro de la case entre crochet. Dans notre exemple, pour accéder à la 2ème case du tableau, on utilise : $coeff1[1]. Il est très important de noter que la première valeur est celle de la case "0" et pas celle de la case "1". Deuxième méthode : <?php $coeff1 = array (3,8,17); $coeff2 = array ("bonjour","bonsoir","salut"); ?> Le terme "array" signifie "tableau" en anglais. Il permet de spécifier à PHP que la valeur qu'on initialise est un tableau. Ensuite, les différentes valeurs sont situées entre les parenthèses et séparées par des virgules. 3.1.2. Accès aux informations
Le code suivant : <?php à pour résultat :
$coeff1 = array (3,8,17); $coeff2 = array ("bonjour","bonsoir","salut"); echo "coeff1 case 0 : ".$coeff1[0]."<br>"; echo "coeff1 case 1 : ".$coeff1[1]."<br>"; echo "coeff1 case 2 : ".$coeff1[2]."<br>"; echo "coeff1 case 3 : ".$coeff1[3]."<br>"; echo "coeff2 case 0 : ".$coeff2[0]."<br>"; echo "coeff2 case 1 : ".$coeff2[1]."<br>"; echo "coeff2 case 2 : ".$coeff2[2]."<br>"; ?> coeff1 case 0 : 3 coeff1 case 1 : 8 coeff1 case 2 : 17 coeff1 case 3 : coeff2 case 0 : bonjour coeff2 case 1 : bonsoir coeff2 case 2 : salut On peut constater que la case 3 du tableau $coeff1 ne contient aucune valeur... Ce qui est normal. 3. 2. Fonctions spécifiques aux tableaux
3.2.1. count
La fonction "count" permet de récupérer le nombre de cases dans un tableau Par exemple, le code suivant : <?php à pour résultat :
$coeff2 = array ("bonjour","bonsoir","salut"); $taille = count($coeff2); echo "le tableau \$coeff2 contient $taille éléments<br>"; echo "coeff2 case 0 : ".$coeff2[0]."<br>"; echo "coeff2 case 1 : ".$coeff2[1]."<br>"; echo "coeff2 case 2 : ".$coeff2[2]."<br>"; ?> le tableau $coeff2 contient 3 éléments La fonction "count" n'a besoin en paramètre que du nom du tableau qui nous intéresse.coeff2 case 0 : bonjour coeff2 case 1 : bonsoir coeff2 case 2 : salut Une fonction est une sorte d'opérateur particulier à qui on donne les opérandes que l'on souhaite. Ici, l'opérande est le tableau $coeff2 et l'opérateur est "count". mais bel et bien son nom. 4. Les variables structurées
4. 1. Généralité
Il existe plusieurs type de variables structurées :
4. 2. Tableau associatif
4.2.1. Initialisation
// tableau à une dimension $tableauassoc = array ("champs1" => "laurent", "champs2" => 27, "champs3" => "rennes"); // tableau à plusieurs dimensions $tableauassoc = array ("champs1" => array("antoine","isabelle","laurent","charlotte"), "champs2" => array(33,32,28,23)); 4.2.2. Affichage
// tableau à une dimension $tableauassoc = array ("champs1" => "laurent", "champs2" => 27, "champs3" => "rennes"); // affichage echo "prénom".$tableauassoc["champs1"]."<br>\n"; echo "age : ".$tableauassoc["champs2"]."<br>\n"; echo "ville: ".$tableauassoc["champs3"]."<br>\n"; // ou echo "prénom :{$tableauassoc["champs1"]}<br>\n"; echo "age : {$tableauassoc["champs2"]}<br>\n"; echo "ville: {$tableauassoc["champs3"]}<br>\n"; // tableau à plusieurs dimensions $tableauassoc = array ("champs1" => array("antoine","isabelle","laurent","charlotte"), "champs2" => array(33,32,28,23)); // affichage for ($i = 0; $i < 4; $i++) { echo "prénom : ".$tableauassoc["champs1"][$i]; echo "age : ".$tableauassoc["champs2"][$i]."<br>\n"; } // ou for ($i = 0; $i < 4; $i++) { echo "prénom : {$tableauassoc["champs1"][$i]}"; echo "age : {$tableauassoc["champs2"][$i]}<br>\n"; } 4. 3. Objet
4.3.1. Exemple
<?php class annuaire { var $nom = ""; function setnom($newname) { $this->nom = $newname; } function printnom() { echo $this->nom; } } $contact = new annuaire(); $contact->setnom("hobbes"); $contact->printnom(); ?> 4.3.2. Explication
Le mot "class" permet de définir une class PHP et donc un Objet. Ensuite, il suffit de définir les variables utiles (avec l'item "var"). Ensuite, on peut définir autant de fonction que nécessaire. Ici, 2 fonctions :
Dans le code, on retrouve les 3 étapes :
|