Académique Documents
Professionnel Documents
Culture Documents
Présentation du PHP
La syntaxe de base
Les types
Introduction à PHP Les variables
Les constantes
Ryan Cassel
cassel@limsi.fr Les expressions
Les opérateurs
Université Paris XI Les structures de contrôle
Les fonctions
Exemples et exercices
PHP 2005 2
Présentation Exemple
Conçu pour faciliter la création de pages web <html>
dynamiques <head>
<title> Exemple de script PHP </title>
</head>
Le code PHP est inséré dans le code HTML au
moyen d’une pseudo-balise : <body>
<? //code PHP ?>
<?PHP //code PHP ?> <h1>
< ?php echo “Bonjour, je suis un script PHP"; ?>
<?php //code PHP ?> </h1>
</body>
D’autres alternatives :
</html>
ASP, JSP, CGI, Perl, …
PHP 2005 5 PHP 2005 6
1
Présentation Configuration
vous écrivez une page HTML avec du code inclus à Récupération des informations du système
l'intérieur afin de réaliser une action précise (dans ce cas
là, afficher du texte). depuis PHP
<?php echo 'Alors que ceci sera analysé par PHP.'; ?>
2
La syntaxe de base Séparation des instructions
Comme en C, PHP requiert que les instructions soient
Le premier exemple est le plus terminées par un point-virgule
communément utilisé et le plus
recommandé. La balise fermante d'un bloc de code PHP implique
automatiquement un point-virgule.
Cependant nous vous recommandons de
systématiquement terminer vos intructions par un point-
Pour réaliser du code portable, virgule
redistribuable, n'utilisez jamais les balises <?php
echo 'Ceci est un test';
courtes. ?>
<?php echo 'Ceci est un test' ?>
Commentaires Commentaires
PHP supporte deux types composés : Un booléen exprime une valeur de vérité.
tableau
objet
Il peut prendre comme valeur
soit TRUE
PHP supporte deux types spéciaux
soit FALSE
PHP 2005 17 PHP 2005 18
3
Les types Les types
Conversion en booléen
Booléens Pour explicitement convertir une valeur en booléen, utilisez les
opérateurs de transtypage (bool) ou (boolean).
Lors des conversions de valeurs de type bool, les valeurs suivantes
sont considérées comme fausses (FALSE) :
Vous pouvez utiliser les mots-clés 'TRUE' et • Le booléen FALSE lui-même
• L'entier 0 (zéro)
'FALSE' pour spécifier une valeur de type • La chaîne de caractères 0.0 (zéro)
booléen. •
•
La chaîne de caractères vide et la chaîne de caractères "0"
Le tableau vide (aucun élément)
• L'objet vide (aucun élément) (PHP 4 uniquement)
• La type spéciale NULL
Ces mots-clés sont insensibles à la casse. Toutes les autres valeurs sont considérées comme vraies (TRUE).
4
Les types Les types
?>
PHP 2005 27 PHP 2005 28
<?php <?php
$arr = array("untableau" => array(6 => 5, 13 => 9, "a" => 42)); // Ce tableau est identique à
array(5 => 43, 32, 56, "b" => 12);
echo $arr["untableau"][6]; // 5
echo $arr["untableau"][13]; // 9 // Celui ci
echo $arr["untableau"]["a"]; // 42 array(5 => 43, 6 => 32, 7 => 56, "b" => 12);
?> ?>
5
Les types Les types
Les tableaux La valeur NULL
La syntaxe à crochets
<?php La valeur spéciale NULL représente l'absence
$arr = array(5 => 1, 12 => 2); de valeur. Une variable avec la valeur NULL n'a
$arr[] = 56; // Ceci revient à $arr[13] = 56; pas de valeur.
// à ce moment du script
$arr["x"] = 42; // Ceci ajoute un nouvel élément
// avec l'index "x" Une variable est considérée comme NULL si :
unset($arr[5]); // Ceci efface un élément du tableau on lui a affecté la constante NULL.
elle n'a été définie à aucune valeur.
unset($arr); // Ceci efface tout le tableau
?> elle a été détruite par la fonction unset().
Variables anonymes
$a = 10
$b = &(18*$a); • Voir phpinfo() pour la liste des variables globales.
6
Les variables Les variables
7
Les variables Les variables
Script équivalent avec le tableau associatif Les variables static
$GLOBALS
8
Les variables Les variables
Est équivalent à :
$a = ‘bonjour '; <?php
$$a = ‘le monde'; echo "$a $bonjour";
?>
?>
Affichera :
bonjour le monde
Seuls les types de données scalaires Il y a des différences entre les constantes
peuvent être placés dans une constante. et les variables :
<?php Les constantes ne commencent pas par le signe ($);
// Noms valides
define("FOO", "something"); Les constantes sont définies et accessibles à tout
define("FOO2", "something else"); endroit du code, globalement.
define("FOO_BAR", "something more")
// Noms invalides
Les constantes ne peuvent pas être redéfinies ou
define("2FOO", "something"); indéfinies une fois qu'elles ont été définies.
// Ce nom est valide, mais évitez-le: Les constantes ne peuvent contenir que des
// PHP peut un jour fournir une constante magique nommée
// ainsi, ce qui va corrompre vos scripts. scalaires.
define("__FOO__", "something");
?>
9
Les constantes Les constantes
__LINE__ La ligne courante dans le fichier. La manière la plus simple de définir une
expression est : "tout ce qui a une valeur".
__FILE__Le chemin complet et le nom du fichier courant. Si
utilisé dans un include, le nom du fichier inclus est retourné.
Depuis PHP 4.0.2, __FILE__ contient toujours le chemin absolu
alors que les anciennes versions contenaient le chemin relatif,
dans certaines circonstances.
Les formes les plus simples d'expressions
sont les constantes et les variables.
__FUNCTION__Le nom de la fonction. (Ajouté en PHP 4.3.0)
Depuis PHP 5, cette constante retourne le nom de la fonction
comme il a été déclaré (sensible à la casse). En PHP 4, cette
valeur est toujours en minuscule.
PHP 2005 57 PHP 2005 58
10
Les opérateurs Les opérateurs
Les opérateurs de comparaison
Les opérateurs d’assignation
$a == $b Egal TRUE si $a est égal à $b.
<?php $a === $b Identique TRUE si $a est égal à $b et qu'ils sont de
$a = ($b = 4) + 5; même type (introduit en PHP 4).
// $a est maintenant égal à 9, et $b vaut 4. $a != $b Différent TRUE si $a est différent de $b.
?> $a <> $b Différent TRUE si $a est différent de $b.
$a !== $b Différent TRUE si $a est différent de $b ou bien
<?php qu'ils ne sont pas du même type. (introduit
$a = 3; en PHP 4)
$a += 5; // affecte la valeur 8 à la variable $a correspond à l'instruction '$a = $a + 5'; $a < $b Plus petit que TRUE si $a est strictement plus petit que
$b = "Bonjour "; $b.
$b .= " tout le monde!"; // affecte la valeur "Bonjour tout le monde!" à $a > $b Plus grand TRUE si $a est strictement plus grand que
// la variable $b $b.
// identique à $b = $b." tout le monde!"; $a <= $b Inférieur ou égal TRUE si $a est plus petit ou égal à $b.
$a >= $b Supérieur ou égalTRUE si $a est plus grand ou égal à $b.
?>
PHP 2005 61 PHP 2005 62
PHP supporte un opérateur de contrôle d'erreur Si l'option track_errors est activée, les
: c'est @. messages d'erreurs générés par une
expression seront sauvés dans la variable
Lorsque cet opérateur est ajouté en préfixe globale $php_errormsg.
d'une expression PHP, les messages d'erreur
qui peuvent être générés par cette expression Cette variable sera écrasée à chaque erreur.
seront ignorés.
11
Les opérateurs Les opérateurs
12
Les structures de contrôle Les structures de contrôle
Tous les scripts PHP sont une suite if else
d'instructions.
Les fonctionnalités de l'instruction if et else sont les mêmes en
Une instruction peut être une assignation, un PHP qu'en C
appel de fonction, une instruction conditionnelle
ou bien une instruction qui ne fait rien (une
instruction vide). <?php
if (expression)
Une instruction se termine habituellement par un {
instructions;
point virgule (";"). }
else
Plusieurs instructions peuvent être regroupées {
en bloc, délimité par des accolades ("{}"). instructions;
}
Un bloc est considéré comme une instruction. ?>
elseif while
Cette boucle se comporte de la même manière qu'en C
13
Les structures de contrôle Les structures de contrôle
foreach break
PHP 4 introduit une commande foreach, comme en Perl L'instruction break permet de sortir d'une
ou d'autres langages.
structure for, foreach, while, do-while ou switch.
C'est un moyen simple de passer en revue un tableau.
<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value = $value * 2;
}
// $arr vaut maintenant array(2, 4, 6, 8)
?>
PHP 2005 79 PHP 2005 80
switch switch
<?php
L'instruction switch équivaut à une série switch ($i) {
d'instructions if. case "tarte":
echo "i est une tarte";
En de nombreuses occasions, vous aurez break;
case "barre":
besoin de comparer la même variable (ou echo "i est une barre";
expression) avec un grand nombre de valeurs break;
case "gateau":
différentes, et d'exécuter différentes parties de echo "i est un gateau";
code suivant la valeur à laquelle elle est égale. break;
}
?>
14
Les structures de contrôle Les fonctions
…
Des fonctions spécifiques au PHP facilite l’accès aux fichiers :
readfile()
opendir()
readdir()
…
Exercice1 Correction
<?PHP
function pyramid($n)
Créez une fonction qui affiche une {
$nb_espace = $n;
pyramide de n lignes $nb_point = 1;
while($nb_espace>=0)
.....o..... 1 {
for($i = 0; $i < $nb_espace; $i++)
....oo.... 2 echo ".";
for($i = 0; $i < $nb_point; $i++)
echo "o";
...ooo... 3 for($i = 0; $i < $nb_espace; $i++)
echo ".";
..oooo.. 4
echo "<br />";
.ooooo. 5 $nb_espace--;
$nb_point++;
oooooo 6 }
}
?>
15
Exercice 2 Correction
Fonction itérative :
<?PHP
function facto($n)
Ecrire une fonction qui calcule la factorielle {
$resultat = 1;
de n. n! while($n>1)
{
$resultat *= $n;
$n--;
• 1! = 1
}
• n! = n x (n – 1)! return($resultat);
}
?>
Correction Exercice 3
Fonction récursives :
<?PHP
function facto($n)
{
if($n == 1) Créer une fonction qui affiche la liste des
return 1;
else fichiers du répertoire courant.
return(n*facto($n-1));
}
?>
Correction Correction
16
Exercice 4 Correction
<?php
function ListeFichier($chemin)
{
$handle = opendir($chemin);
Créez une fonction qui remplit un tableau avec
while(false !== ($file = readdir($handle)) )
les noms de fichiers d'un dossier {
$files[] = $file;
}
closedir($handle);
return($files);
}
?>
<?php
$files = scandir($chemin)
return($files);
?>
17