3.4 Variables et assignation
-
Une variable est un "containeur" qui contient de l'information.
-
Tout identificateur précédé par un $ est une variable
-
Il n'est pas obligatoire de déclarer les variables (mais fortement conseillé)
-
Pour assigner un contenu à une variable on fait une assignation.
A. Variables simples et assignation
assignation
$variable = contenu ;
Illustrations:
$a = 10;
$nom = "Patrick Ott";
$somme = 123.456;
Exemple 3-1: Imprimer des variables
-
Fichiers:
Application
|
|
Source (pour voir)
|
|
Source (pour copier)
|
|
<BODY>
<H1>Simple Echo of variables with PHP</H1>
<?php
$a = 10;
$nom = "Patrick Ott";
$somme = 123.456;
echo "Le nommé $nom a $somme francs dans la poche, mais il voudrait $a fois plus.";
?>
<p><hr>
</BODY>
-
echo est une "instruction" qui permet d'imprimer un string
-
Notez que les $xxx sont substitués par leur contenu !
B. Création et utilisation d'arrays simples
-
Un "array" (vecteur) est une sorte de liste
-
Utiles pour stocker de l'information de même type que l'on veut manipuler ensemble.
Méthode de création 1:
$nombres[] =1;
$nombres[] =2;
$nombres[] =3;
$nombres[] =4;
Méthode de création 2:
$nombres = array (1, 2, 3, 4);
$noms = array ("Pat", "Dave", "Surf", "K");
Utilisation:
Utilisation d'arrays simples
$vecteur[index]
-
L'index commence à 0 ! (zero)
echo "Le deuxième élément de noms est: $noms[1];
Exemple 3-2: Simple variables, arrays et un peu de génération HTML
<?php
// Some simple HTML
echo"<h1>Simple arrays</h1>";
$utilisateur = "cher étudiant";
$no_utilisateur = 3;
$nombres = array (1, 2, 3, 4);
$noms = array ("Pat", "Dave", "Surf", "K");
$noms[] = "Zorro";
// Note html <br> tag
echo "Salut $utilisateur. Vous êtes le numéro $no_utilisateur.<br>";
// echo with concatenation, use it to print complex things
echo "La quatrième personne s'appelle " . $noms[3] ." ";
// simple echo
echo "et la cinquième personne s'appelle $noms[4].<p>";
$n = sizeof($nombres);
// note that we have to use \ in order to print a $ !
echo "We have $n numbers in array \$nombres.";
?>
C. Arrays associatifs et multi-dimensionnels
(pas obligatoire au début !)
$fruits = array(
"fruits" => array("a"=>"orange","b"=>"banana","c"=>"apple"),
"numbers" => array(1, 2, 3, 4, 5, 6)
"holes" => array("first", 5 => "second", "third")
);
D. Récapitulation pour les variables
-
Il n'est pas nécessaire de déclarer une variable au préalable, mais c'est conseillé
-
Voici les 5 types (avec exemple):
$a = 1234; # decimal number
$a = -123; # a negative number
$a = 1.234; $a = 1.2e3; # floating point number
$str = "This is a string"; # chaine de caractères
$a[0] = "abc"; # élément 0 d'un array
$a[1] = "def"; # élément 1 d'un array
$b["foo"] = 13; # élément "foo" d'un array
3.5 Simples expressions et opérateurs
A. Opérateurs arithmétiques
-
Comme les maths "normales":
exemple
|
nom
|
Retourne le resultat:
|
$a +$b
|
Addition
|
Somme de $a et $b
|
$a - $b
|
Soustraction
|
Reste de la différence de $b et $a
|
$a * $b
|
Multiplication
|
|
$a / $b
|
Division
|
|
$a % $b
|
Modulo
|
Reste de la division entière de $a par $b
|
-
Note: Il existe des fonctions PHP pour effectuer d'autres calculs, par exemple max() et min() .... voir le manuel.
Exemple 3-3: Simple Arithmétique
Application
|
|
Source
|
|
Pour copier
|
-
/guides/php/examples/simple/simple-calcul.text
|
$leisure_satisfaction = 5;
$work_satisfaction = 7;
$family_satisfaction = 8;
$index = ($leisure_satisfaction + $work_satisfaction + $family_satisfaction) / 3 ;
echo "<p align=center> Satisfaction Index = $index <b>";
Assignation + addition en une seule instruction:
// sets $a to 8, as if we had said: $a = $a + 5;
$a += 5;
B. Opérateurs sur les chaînes
Addition de chaînes de caractères (concatenation)
Utiliser le ".", exemple:
$a = "Hello ";
$b = $a . "World!"; // now $b = "Hello World!"
-
Note: Il existe de fonctions PHP pour manipuler des strings
Assignation + concatenation en une seule fois
$b = "Hello ";
// sets $b to "Hello There!", just like $b = $b . "There!";
$b .= "There!";
C. Opérateurs logiques
example
|
name
|
result
|
$a and $b
|
"et"
|
Résultat vrai si $a et $b sont vrais
|
$a && $b
|
"et"
|
"
|
$a or $b
|
"ou"
|
Résultat vrai si $a ou $b ou les deux sont vrais
|
$a || $b
|
"ou"
|
"
|
$a xor $b
|
Or exclusif
|
Résultat vrai si $a ou $b sont vrais, mais pas les deux
|
! $a
|
"ne pas"
|
Résultat vrai si $a n'est pas vrai (est-que $a est faux?)
|
D. Opérateurs de comparaison
exemple
|
name
|
result
|
$a == $b
|
égal
|
True if $a is equal to $b.
|
$a != $b
|
différent
|
True if $a is not equal to $b.
|
$a < $b
|
inférieur
|
True if $a is strictly less than $b.
|
$a > $b
|
supérieur
|
True if $a is strictly greater than $b.
|
$a <= $b
|
inférieur ou égal
|
True if $a is less than or equal to $b.
|
$a >= $b
|
supérieur ou égal
|
True if $a is greater than or equal to $b
|
-
Utilisez des parenthèses en cas de doute !
Exemple 3-4: Comparaisons simples
$a = "Migros";
$b = "Coop";
$result = $a==$b;
$result2 = $a > $b;
$result3 = $result==TRUE;
echo "Result One = $result. ";
echo "Result TWO = $result2. ";
echo "Result THREE = $result3.";
3.6 Sélection (Conditions et tests)
Principe (plusieurs situations typiques):
-
Si une condition est vraie alors faire ceci.
-
Si une condition est vraie alors faire ceci, sinon faire cela.
-
Si une condition est vraie alors faire ceci, sinon si une autre condition est vraie faire autre chose, sinon ......
"IF" (plusieurs variantes)
if
(expr) statements
if
(expr)
statements
else
statements
if
(
expr
)
statements
elseif
(
expr
)
statements
else ...
if
(expr) statements
elseif
(expr) statements [
elseif
(expr) ... ]
-
expr
= Expression qui doit retourner une valeur TRUE ou FALSE
-
statements
= simple instruction ou bloc d'instructions
-
simple: $a = 10;
-
bloc: { $a =12; echo "salut"; ..... }
-
déroulement de l'exécution:
-
Lorsque l'expression = TRUE on exécute le(s) statements
-
Lorsque l'expression = FALSE on passe à la clause suivante
Exemple 3-5: Simple "if" (comparaison)
Figure 3-2: Simple arbre de decision
<?php
$a = 10; $b = 11;
print "a was $a, b was $b. ";
if ($a > $b) {
print "a is bigger than b";
} elseif ($a == $b) {
print "a est égal à b";
} else {
print "==> a is smaller than b.";
}
?>
Voir aussi les instructions suivantes:
-
switch"
-
foreach
-
do ... while
-
break et continue
3.8 Boucles "for" et génération HTML
A. Introduction à la boucle "for"
"boucle FOR":
FOR (expr1; expr2; expr3) statement
-
expr1 est évaluée au début du loop
-
expr2 est évaluée au début de chaque boucle,
si le résultat = TRUE la boucle continue, sinon on sort de la boucle
-
expr3 est évaluée à la fin de chaque boucle,
-
statement est exécuté à l'intérieur de chaque boucle.
Exemple 3-7: Love generation
for ($i=1; $i<=10; $i++) {
print "I love you so ! ";
}
Résultat:
love you so ! I love you so ! I love you so ! I love you so ! I love you so ! I love you so ! ......
for ($i=2; $i<=10; $i++) {
echo "Non, je t'aime $i fois plus que moi ! ";
}
Résultat:
Je t'aime plus que moi. Non, je t'aime 2 fois plus que moi ! Non, je t'aime 3 fois plus que moi ! Non, je t'aime 4 fois plus que moi ! Non, je t'aime 5 fois plus que moi ! Non, je t'aime 6 .....
Autres éléments PHP:
-
$
i est utilisée comme variable d'itération. Au début $i = 1 ou 2.
-
echo
imprime un ou plusieurs string(s) (et substitue les variables)
-
print
imprime un string (et substitue les variables) ... pareil que echo mais c'est une fonction.
B. Fonctions PHP et arrays (génération d'une table HTML)
-
array()
permet de définir un vecteur
-
fonction ()
{ ....} définit une fonction
-
$<variable>[<entier>] accède à un élément d'un vecteur
Exemple 3-8: Génération de tables html
$love_list = array ("a lot", "a bit", "somewhat", "à mourir", "forever", "until notice", "more than I love my dog");
<table border align="center">
<?
// define a function to generate a table
function build_table($list) {
for ($i=0; $i < sizeof($list); $i++) {
$love_text = $list[$i];
echo "<tr> <td> ... I love you</td> <td>$love_text</td>";
}
}
// call the function, generate the table
build_table($love_list);
?>
</table>
Notez:
-
qu'on insère du PHP à l'intérieur d'un tag <table>
-
qu'on appelle la fonction build_table avec comme argument un vecteur (donc la fonction pourrait être utilisée ailleurs, avec un include par exemple)