Chapitre 2 : Les notions de base
Table des matières
Introduction 3
I - PHP ? 4
1.
Définition ..................................................................................................................................... 4
2.
La petite histoire .......................................................................................................................... 4
II -
Présentation de PHP 5
III -
Le modèle et le fonctionnement 6
IV -
Intégration du PHP dans une page Web 7
V -
Variables, types et opérateurs 8
1. Opérateurs arithmétiques ............................................................................................................. 9
2. Opérateurs d'assignement ............................................................................................................ 9
3. Opérateurs logiques ...................................................................................................................... 9
4. Opérateurs de comparaison .......................................................................................................... 9
VI -
Constantes 10
VII -
Références 11
VIII -
Mathématiques 12
1. Quelques constantes ................................................................................................................... 12
2. Nombres aléatoires : ................................................................................................................... 12
3. Formatage d'un nombre ............................................................................................................. 12
IX -
Expressions 14
X -
Booléens 15
XI -
Chaînes de caractères 16
XII -
Affichage 18
Introduction
Pour toutes informations supplémentaires sur tout ce qui va suivre, vous pouvez consulter la documentation officielle de PHP.
Houcem Hedhly & Mohamed Ouali
3
PHP ?
I
Définition 4
La petite histoire 4
PHP ?
1. Définition
, est PHP: Hypertext Preprocessor, plus connu sous son sigle un langage de programmation libre principalement utilisé pour produire des pages Web dynamiques via un serveur HTTP, mais pouvant également fonctionner comme n'importe quel langage interprété de façon locale. PHP est un langage impératif orienté objet
PHP
2. La petite histoire
Le langage PHP fut créé en 1994 par Rasmus Lerdorf pour son . C'était à l'origine CC une bibliothèque logicielle en dont il se servait pour conserver une trace des visiteurs qui venaient consulter son CV. Au fur et à mesure qu'il ajoutait de nouvelles fonctionnalités, Rasmus a transformé la bibliothèque en une implémentation capable de communiquer avec des bases de données et de créer des applications dynamiques et simples pour le Web. Rasmus décida alors en 1995 de publier son code, pour que tout le monde puisse l'utiliser et en profiter. PHP s'appelait alors PHP/FI (pour ersonal ome age ools/ orm nterpreter).
site webSite web
H
T
P
P
F
I
En 1997, deux étudiants, Andi Gutmans et Zeev Suraski, redéveloppèrent le cœur de PHP/FI. Ce travail aboutit un an plus tard à la version 3 de PHP, devenu alors PHP: Hypertext Preprocessor. Peu de temps après, Andi Gutmans et Zeev Suraski commencèrent la réécriture du moteur interne de PHP. Ce fut ce nouveau moteur, appelé Zend Engine - le mot Zend est la contraction de ZEev et aNDi - qui servit de base à la version 4 de PHP.
En 2002, PHP est utilisé par plus de 8 millions de sites Web à travers le monde, en 2007 par plus de 20 millions et en 2013 par plus de 244 millions.
La version actuelle est la version 5, sortie le 13 juillet 2004.
La dernière mise à jour est la 5.6.13 datant du 03 septembre 2015.
4
Houcem Hedhly & Mohamed Ouali
Présentation de PHP
Présentation de PHP
II
PHP est un langage interprété (un langage de script) exécuté du côté serveur (comme les scripts CGICGI ASPASP , ...) et non du côté client (un script écrit en JavaScript ou une applet Java , s'exécute au contraire sur l'ordinateur où se trouve le navigateur).
Ses principaux atouts sont :
La gratuité et la disponibilité du code source (PHP est distribué sous licence GNU GPLGPL ) La simplicité d'écriture de scripts La possibilité d'inclure le script PHP au sein d'une page HTML (contrairement aux scripts CGi, pour lesquels il faut écrire des lignes de code pour afficher chaque ligne en langage HTML) La simplicité d'interfaçage avec des bases de données (de nombreux supportés, le plus utilisé avec ce langage est MySQL). L'intégration au sein de nombreux serveurs web (Apache...)
SGBDSGBD
sont
Houcem Hedhly & Mohamed Ouali
5
Le modèle et le fonctionnement
Le modèle et le fonctionnement
III
Dans une utilisation Web, l'exécution du code PHP se déroule ainsi : lorsqu'un visiteur demande à consulter une page Web, son navigateur envoie une requête au serveur HTTPServeur HTTP correspondant. Si la page est identifiée comme un script PHP (généralement grâce à l'extension PHP qui va traiter et générer le code final de la page .php ), le serveur appelle l' (constitué généralement d' ). Ce contenu est renvoyé au
interprèteInterprète HTMLHTML
, qui l'envoie finalement au client.
serveur HTTPServeur HTTP
, mais aussi souvent de
JSJavaScript
CSSCSS
et de
Une étape supplémentaire est souvent ajoutée : celle du dialogue entre PHP et la base de donnéesBase de données voulu, lui transmet des requêtes et en récupère le résultat, avant de fermer la connexion.
. Classiquement, PHP ouvre une connexion au serveur de
SGBDSGBD
Ce schéma explique ce fonctionnement :
6
Houcem Hedhly & Mohamed Ouali
Intégration du PHP dans une page Web
Intégration du PHP dans une page Web
IV
Les pages web sont au format format de la norme XML : <?php ... ?>
.php
Publicité
. Les pages web dynamiques générées avec PHP sont au . Le code source php est directement insérer dans le fichier html grâce au conteneur
.html
Exemple
<html> <body> <h1>Mon premier script</h1> <?php Echo “Bonjour”; ?> </body> </html>
Remarque : un script php se commente comme en C
<?php
// commentaire de fin de ligne
/* commentaire
sur plusieurs
lignes */
commentaire de fin de ligne comme en Shell
?>
Tout ce qui se trouve dans un commentaire est ignoré. Il est conseillé de commenter largement ses scripts.
Houcem Hedhly & Mohamed Ouali
7
Variables, types et opérateurs
Variables, types et opérateurs
V
Le typage des variables est au préalable ni même de les initialiser avant leur utilisation.
implicite
en php. Il n'est donc pas nécessaire de déclarer leur type
Les identificateurs de variable sont précédés du symbole « $ » (dollars).
Exemple
$maVar
Les variables peuvent être de type entier (integer), réel (double), chaîne de caractères (string), tableau (array), objet (object), booléen (boolean).
Il est possible de convertir une variable en un type primitif grâce au
castcast
(comme en C).
Exemple
$str = "12"; // $str vaut la chaîne "12"
$nbr = (int)$str; // $nbr vaut le nombre 12
Quelques fonctions
empty($var) : renvoie vrai si la variable est vide
isset($var) : renvoie vrai si la variable existe
unset($var) : détruit une variable
gettype($var) : retourne le type de la variable
settype($var, "type") : convertit la variable en type type (cast)
, is_long(), is_numeric() is_integer
,
(),
is_int()
, ...
is_double() is_string() is_array() is_object
,
(),
is_bool() is_float() ,
,
Complément : Une variable peut avoir pour identificateur la valeur d'une autre variable.
Syntaxe : ${$var} = valeur
Exemple
$toto = "Hello";
${$toto} = 2012;
echo $Hello; // la variable $Hello vaut 2012
Attention
La portée d'une variable est limitée au bloc dans lequel elle a été créée. Une variable locale à une fonction n'est pas connue dans le reste du programme. Tout comme une variable du programme n'est pas connue dans une fonction. Une variable créée dans un bloc n'est pas connue dans les autres blocs, mêmes supérieurs.
8
Houcem Hedhly & Mohamed Ouali
Variables, types et opérateurs
1. Opérateurs arithmétiques -
+ (addition), (soustraction), (multiplication), (division), * (décrément). Ces deux derniers peuvent être pré ou post fixés
/
%
(modulo),
++
(incrément),
--
2. Opérateurs d'assignement
= (affectation),
*=
($x*=$y équivalent à $x=$x*$y),
3. Opérateurs logiques xor
, (ou),
(et),
and,
or ||
&&
(ou exclusif), (non)
!
/= += -= %= ,
,
,
4. Opérateurs de comparaison <
(inférieur strict),
== (égalité),
<=
(inférieur large),
> >= !=
,
,
(différence)
Remarque
Signalons un opérateur très spécial qui est équivaut à une structure conditionnelle complexe if then else à la différence qu'il renvoie un résultat de valeur pouvant ne pas être un booléen : l'opérateur ternaire.
(condition)?(expression1):(expression2);
condition
Si la expression2
.
Publicité
est vraie alors évalue et renvoie l'
expression1
sinon évalue et renvoie l'
Exemple
$nbr = ($toto<=10)?($toto):($toto%10);
Dans cet exemple, la variable prend sinon vaut le reste de la division entière de
$nbr
$toto $toto
pour valeur si 10 . par
$toto
est strictement supérieur à
10
,
Houcem Hedhly & Mohamed Ouali
9
Constantes
Constantes
VI
L'utilisateur peut définir des constantes dont la valeur est fixée une fois pour toute. Les constantes ne portent pas le symbole $ (dollars) en début d'identificateur et ne sont pas modifiables.
Syntaxe
define("const",val) : définit la constante
const
(sans $) de valeur
val
Exemple
define("Auteur","Michel");
echo Auteur; // affiche ‘Michel'
define(MY_YEAR,1980);
echo MY_YEAR; // affiche 1980
Remarque
Contrairement aux variables, les identificateurs de constantes (et aussi ceux de fonction) ne sont pas sensibles à la casse.
10
Houcem Hedhly & Mohamed Ouali
Références
Références
VII
On peut à la manière des pointeurs en (ET commercial).
CC
faire référence à une variable grâce à l'opérateur &
Exemple
$toto = 100; // la variable $toto est initialisée à la valeur 100
$test = &$toto; // la variable $test fait référence à $toto
$toto++; // on change la valeur de $toto
echo $test; // qui est répercutée sur $toto qui vaut alors 101
Exemple
function change($var) {
$var++; // la fonction incrémente en local l'argument
}
$nbr = 1; // la variable $nbr est initialisée à 1
change(&$nbr); // passage de la variable par référence
echo $nbr; // sa valeur a donc été modifiée
Houcem Hedhly & Mohamed Ouali
11
Mathématiques
VIII
Mathématiques
Il existe une myriade de fonctions mathématiques.
abs($x) : valeur absolue
ceil($x) : arrondi supérieur
floor($x) : arrondi inférieur
pow($x,$y) : x exposant y
round($x,$i) : arrondi de x à la ième décimale
max($a, $b, $c ...) : retourne l'argument de valeur maximum
pi() : retourne la valeur de Pi
Et aussi :
cos sin tan exp log min pi sqrt ,
,
,
,
,
,
,
...
1. Quelques constantes
M_PI : valeur de pi (3.14159265358979323846)
M_E : valeur de e (2.7182818284590452354)
2. Nombres aléatoires :
rand([$x[,$y]]) : valeur entière aléatoire entre 0 et RAND_MAX si x et y ne sont pas définis, entre x et RAND_MAX si seul x est défini, entre x et y si ces deux paramètres sont définis.
srand() : initialisation du générateur aléatoire
getrandmax() : retourne la valeur du plus grand entier pouvant être généré
Conseil
L'algorithme utilisé par la fonction lent et possède un comportement pouvant se révéler prévisible. La fonction à
- issu de vieilles bibliothèques libres - est particulièrement équivalente
est plus rapide et plus sûre puisque l'algorithme utilisé se base sur la cryptographie.
mt_rand()
rand()
rand()
En cas d'utilisation de la fonction famille :
,
mt_rand() et
mt_rand([$x[,$y]]) mt_srand() mt_getrandmax()
.
, ne pas oublier d'utiliser les fonctions de la même
3. Formatage d'un nombre
number_format($nbr[,$dec,[$a,[$b]]]) : retourne une chaîne de caractères représentant le nombre représente le symbole faisant avec office de virgule et
décimales après formatage. La chaîne
Publicité
le séparateur de milliers.
$dec $b
$nbr
$a
Par défaut, le formatage est anglophone : $a = ''. '' et $b = '', ''.
Très utile pour représenter les nombres élevés au format francophone.
12
Houcem Hedhly & Mohamed Ouali
Mathématiques
Exemple
number_format (1000000.3333); // affiche 1,000,000
number_format (1000000.3333,2); // affiche 1,000,000.33
number_format (1000000.3333,2,",","."); // affiche 1.000.000,33
Houcem Hedhly & Mohamed Ouali
13
Expressions
Expressions
IX
Presque tout en php est une expression. On les construit de façon très souple. De façon à réduire la taille du code (comme en ). L'inconvénient est l'illisibilité du code ainsi écrit sauf à le commenter suffisamment. Il faut donc les construire avec parcimonie et ne pas hésiter à les fractionner.
CC
Exemple
echo change( $nbr += ($toto>0)?(0):(--$toto) );
Attention
Attention à utiliser les parenthèses en fin de palier aux priorités des opérateurs.
14
Houcem Hedhly & Mohamed Ouali
Booléens
Booléens
X
(faux). Une valeur Les variables booléennes prennent pour valeurs entière nulle est automatiquement considérée comme FALSE. Tout comme une chaîne de caractères vide "". Ou encore comme les chaînes "0" et ‘0' en l'entier 0 lui même casté en FALSE.
(vrai) et
castéescast
FALSE
TRUE
Exemple
if(0) echo 1; // faux
if('''') echo 2; // faux
if(''0'') echo 3; // faux
if(''00'') echo 4;
if('0') echo 5; // faux
if('00') echo 6;
if('' '') echo 7;
Cet exemple affiche 467. Donc l'espace ou la chaîne ‘'00'' ne sont pas considérés castés en FALSE.
Houcem Hedhly & Mohamed Ouali
15
Chaînes de caractères
Chaînes de caractères
XI
Une variable chaîne de caractères n'est pas limitée en nombre de caractères. Elle est toujours délimitée par des simples quotes ou des doubles quotes.
Exemple
$nom = ''Hugo'';
$prenom = ‘Victor';
Les doubles quottes permettent l'évaluation des variables et caractères spéciaux contenus dans la chaîne (comme en
) alors que les simples ne le permettent pas.
ShellShell
ou en
CC
Exemple
echo ''Nom: $nom''; // affiche Nom: Hugo
echo 'Nom: $nom‘; // affiche Nom: $nom
Quelques caractères spéciaux
\n (nouvelle ligne), \r (retour à la ligne), \t (tabulation horizontale), \\ (antislash), \$ (caractère dollars), \'' (double quote).
Opérateur de concaténation de chaînes
. (point)
Exemple
$foo = ''Hello'';
$bar = ''World'';
echo $foo.$bar;
$name = ''Henry'';
$whoiam = $name. ''IV'';
$out = ‘Patati';
$out .= '' et patata...'';
Quelques fonctions
strlen($str) : retourne le nombre de caractères d'une chaîne
strtolower($str) : conversion en minuscules
strtoupper($str) : conversion en majuscules
trim($str) : suppression des espaces de début et de fin de chaîne
substr($str,$i,$j) : retourne une sous chaîne de $str de taille $j et débutant à la position $i
strnatcmp($str1,$str2) : comparaison de 2 chaînes
16
Houcem Hedhly & Mohamed Ouali
Chaînes de caractères
addslashes($str) : déspécialise les caractères spéciaux (‘, ‘', \)
ord($char) : retourne la valeur ASCII du caractère $char
Houcem Hedhly & Mohamed Ouali
17
Affichage
XII
Affichage
Les fonctions d'affichage :
echo() : écriture dans le navigateur
print() : écriture dans le navigateur
printf([$format, $arg1, $arg2]) : écriture formatée comme en C, la chaîne de caractère est constante et contient le format d'affichage des variables passées en argument
18
Houcem Hedhly & Mohamed Ouali