3.2 Ressources PHP on-line et conventions pour la Syntaxe
Conventions utilisées dans ce document !
fonte
|
exemple
|
signification
|
fixe oblique
|
contenu
|
vous devez remplacer le contenu
|
<fixe>
|
<statement>
|
pareil
|
fixe bold
|
then
|
Mots clefs, à mettre tel quel
|
Ressources:
(y compris manuels, exemples etc.)
(téléchargement, updates, news, manuel commenté (avec traductions)...)
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: Afficher 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/afficher un string (chaîne de caractères)
-
Notez que les $xxx sont substitués par leur contenu !
B. Création et utilisation de tableaux simples
-
Un tableau ("array" ou 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, tableaux 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. Tableaux 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 ou d'initialiser une variable au préalable en PHP,
mais c'est fortement conseillé
, surtout si vous voulez faire des applications robustes qui ne produisent pas de warnings (voir la fonction
error_reporting()
au chapitre 4.1 "Debugging" [31])
-
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 Utilisation de constantes.
-
On utilise les constantes pour stocker une information qui ne varie pas.
-
On ne met pas de "$" devant le nom de la constante.
-
Le nom de la constante tient compte de la casse (majuscule/minuscule).
-
Par convention, on nomme les constantes avec des majuscules.
A. Définition
define(<NOM>, <valeur>);
define("PI", 3.14);
define("REMERCIEMENTS", "Merci d'utiliser notre programme<br>");
define("SALUTATIONS", "Je vous prie d'agréer, Madame, Monsieur, l'expression de nos sentiments dévoués");
$rayon = 12;
$perimetre = 2 * $rayon * PI;
echo REMERCIEMENTS;
echo "le périmètre du cercle est de " . $perimetre . "<br>";
echo SALUTATIONS;
résultat:
Merci d'utiliser notre programme
le périmètre du cercle est de 77.76
Je vous prie d'agréer, Madame, Monsieur, l'expression de nos sentiments dévoués.
3.6 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 de caractères
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
|
identique
|
True if $a==$b and same type (php 4.x)
|
$a != $b
|
différent
|
True if $a is not equal to $b.
|
$a!==$b
|
pas identiques
|
True if $a!=$b or not same type (php4.x)
|
$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. Result TWO = $result2. Result THREE = $result3.";
3.7 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) statement(s)
-
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 Fonctions PHP
-
Comme tous les langages de programmation PHP permet de définir des procédures/fonctions.
-
Une fonction dans php est un bout de programme nommé (qu'on peut donc "appeler" et qui fait quelque chose (éventuellement avec des arguments)
"Traite moi ces informations et retourne-moi le résultat"
-
On les place au début du fichier car elles doivent être définies avant d'être utilisées
Exemple 3-6: Color mixing for paint
function color_mix($color1,$color2) {
$result= "unknown";
if ($color1 == "bleu" and $color2 == "rouge") {
$result = "violet"; }
elseif ($color1 == "jaune" and $color2 == "bleu") {
$result = "green"; }
elseif ($color1 == "noire" and $color2 == "blanc") {
$result = "gris"; }
else {
$result = "orange"; }
return $result;
}
// Two calls to this function, results saved in variables
$situation1 = color_mix ("bleu", "rouge") ;
$situation2 = color_mix ("jaune", "bleu") ;
// Print
echo "Bleu et rouge donne $situation1 <br>";
echo "Jaune et bleu donne $situation2";
Exemple 3-7: Génération HTML simple avec des fonctions
<?php
// html formats a data element
function pretty_print
($output) {
separator ();
echo "<p align='center'> <strong>ELEMENT:</strong> $output </p>";
}
// outputs a separator
function separator ()
{
echo "<hr size=4 width=70%>";
}
// data we have
$el1 = "Un arbre jaune";
$el2 = "Ein gelber Hund";
$el3 = "A yellow sky";
// dump the data
pretty_print
($el1);
pretty_print
($el2);
pretty_print
($el3);
separator
();
echo "<hr>";
?>
3.9 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-8: 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 ! ......
echo "Je t'aime plus que toi.<br>
for ($i=2; $i<=10; $i++) {
echo "Non, je t'aime $i fois plus que toi ! ";
}
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 tableau simple (vecteur)
-
fonction ()
{ ....} définit une fonction
-
$<variable>[<entier>] accède à un élément d'un vecteur
Exemple 3-9: 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:
-
On insère du PHP à l'intérieur d'une balise <table>
-
On donne à la fonction
build_table
un argument de type tableu (une liste)