PHP - Notions de base

Institut Supérieur des Études Technologiques
1/8
100%
Rendu du PDF...
Page 1 sur 8Lecteur de document UniversityLib

PHP - Notions de base

Institut Supérieur des Études Technologiques · Server-side scripting languages · lab

Voir tous les documents en développement web

Chapitre II : PHP - Notions de base [Sept 2016]

I. La petite histoire du PHP

Il a été créé en 1994 par Rasmus Lerdorf pour les besoins des pages web personnelles (livre d’or, compteurs, etc.). A l’époque, PHP signifiait Personal Home Page. C’est un langage incrusté au HTML et interprété (PHP3) ou compilé (PHP4) côté serveur. Il dérive du C et du Perl dont il reprend la syntaxe. Il est extensible grâce à de nombreux modules et son code source est ouvert. Comme il supporte tous les standards du web et qu’il est gratuit, il s’est rapidement répandu sur la toile. En 1997, PHP devient un projet collectif et son interpréteur est réécrit par Zeev Suraski et Andi Gutmans pour donner la version 3 qui s’appelle désormais PHP : Hypertext Preprocessor. En 2002, PHP est utilisé par plus de 8 millions de sites Web à travers le monde et en 2007 par plus de 20 millions. La version actuelle est la version 5, sortie le 13 juillet 2004. La dernière mise à jour est la 5.6.14 datant du 1 octobre 2015. La prochaine version : PHP 6 est en développement. Il existe par ailleurs des applications web prêtes à l’emploi (PHPNuke, PHP SPIP, PHPSlash…) permettant de monter facilement et gratuitement son portail. En juillet 2000 plus de 300.000 sites tournaient déjà sous PHP !

II. Modèle

III. Intégration d’un script dans une page

Les pages web sont au format html. Les pages web dynamiques générées avec PHP sont au

format php. Le code source php est directement inséré dans le fichier html grâce au conteneur

de la norme XML : <?php … ?>

Exemple:

1 Enseignants : Ouali Mohamed et Hedhli Houssem ISET de Bizerte Classes : DSI2 Matière : Pgt côté serveur

Chapitre II : PHP - Notions de base [Sept 2016]

Résultat affiché par le navigateur

<html> <body> <?php

echo "Bonjour";

?> </body> </html>

Exemple de script

<html> <body> </body> </html>

IV. Commentaires

Un script php se commente comme en C :

Exemple :

<?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.

V. Variables, types et opérateurs

Le typage des variables est implicite en php. Il n’est donc pas nécessaire de déclarer leur type au préalable ni même de les initialiser avant leur utilisation. Les identificateurs de variable sont précédés du symbole « $ » (dollars).

2 Enseignants : Ouali Mohamed et Hedhli Houssem ISET de Bizerte Classes : DSI2 Matière : Pgt côté serveur

Chapitre II : PHP - Notions de base [Sept 2016]

Exemple : $toto.

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 cast1 (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_double(), is_string(), is_array(), is_object(), is_bool(), is_float(), is_numeric(), is_integer(), is_int()…

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

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.

Opérateurs arithmétiques :

+ (addition), - (soustraction), * (multiplié), / (divisé), % (modulo), ++ (incrément),

-- (décrément). Ces deux derniers peuvent être pré ou post fixés

Opérateurs d’assignement :

= (affectation), *= ($x*=$y équivalent à $x=$x*$y), /=, +=, -=, %=

Publicité

Opérateurs logiques :

and, && (et), or, || (ou), xor (ou exclusif), ! (non)

Opérateurs de comparaison :

== (égalité), < (inférieur strict), <= (inférieur large), >, >=, != (différence)

1 Le cast est une conversion de type. L’action de caster consiste en convertir une variable d’un type à un autre.

3 Enseignants : Ouali Mohamed et Hedhli Houssem ISET de Bizerte Classes : DSI2 Matière : Pgt côté serveur

Chapitre II : PHP - Notions de base [Sept 2016]

Signalons un opérateur très spécial qui é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.

Syntaxe :

(condition)?(expression1):(expression2);

Si la condition est vrai alors évalue et renvoie l’expression1 sinon évalue et renvoie l’expression2.

Exemple :

$nbr = ($toto>10)?($toto):($toto%10);

Dans cet exemple, la variable $nbr prend $toto pour valeur si $toto est strictement supérieur à 10, sinon vaut le reste de la division entière de $toto par 10.

VI. Constantes

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.

define("var",valeur) : définit la constante var (sans $) de valeur valeur

Exemple 1 :

define("Auteur","Michel");

echo Auteur;

// affiche ‘Michel’

Exemple 2 :

define(MY_YEAR,1980);

echo MY_YEAR;

// affiche 1980

Contrairement aux variables, les identificateurs de constantes (et aussi ceux de fonction) ne sont pas sensibles à la casse.

VII. Références

On peut à la manière des pointeurs en C faire référence à une variable grâce à l’opérateur & (ET commercial).

Exemple 1 :

$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 $test qui vaut alors 101

Exemple 2 :

4 Enseignants : Ouali Mohamed et Hedhli Houssem ISET de Bizerte Classes : DSI2 Matière : Pgt côté serveur

Chapitre II : PHP - Notions de base [Sept 2016]

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

VIII. Mathématiques

Il existe une miriade de fonctions mathématiques.

abs($x) : valeur absolue

ceil($x) : arrondi supérieur

floor($x) : arrondi inférieur

Publicité

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…

Quelques constantes :

M_PI : valeur de pi (3.14159265358979323846)

M_E : valeur de e (2.7182818284590452354)

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é

L'algorithme utilisé par la fonction rand() - issu de vieilles bibliothèques libcs - est particulièrement lent et possède un comportement pouvant se révéler prévisible. La fonction mt_rand() équivalente à rand() est plus rapide et plus sûre puisque l'algorithme utilisé se base sur la cryptographie.

En cas d’utilisation de la fonction mt_rand(), ne pas oublier d’utiliser les fonctions de la même famille : mt_rand([$x[,$y]]), mt_srand() et mt_getrandmax().

Formatage d’un nombre :

number_format ($nbr[,$dec,[$a,$b]]) : retourne une chaîne de caractères représentant le nombre $nbr avec $dec décimales après formatage. La chaîne $a représente le symbole faisant office de virgule et $b le séparateur de milliers.

5 Enseignants : Ouali Mohamed et Hedhli Houssem ISET de Bizerte Classes : DSI2 Matière : Pgt côté serveur

Chapitre II : PHP - Notions de base [Sept 2016]

Par défaut, le formatage est anglophone : $a = ''. '' et $b = '', ''.

Très utile pour représenter les nombres élevés au format francophone.

Exemples :

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

IX. Expressions

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 C). 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.

Exemple :

echo change( $nbr += ($toto>0)?(0):(--$toto) );

Attention à utiliser les parenthèses afin de pallier aux priorités des opérateurs.

X. Booléens

Les variables booléennes prennent pour valeurs TRUE (vrai) et FALSE (faux). Une valeur 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’ castées en l’entier 0 lui même casté en FALSE.

Exemple :

if(0) echo 1;

// faux

if('''') echo 2;

if(''0'') echo 3;

if(''00'') echo 4;

// faux

// faux

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.

XI. Chaînes de caractères

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.

Exemples :

6 Enseignants : Ouali Mohamed et Hedhli Houssem ISET de Bizerte Classes : DSI2 Matière : Pgt côté serveur

Chapitre II : PHP - Notions de base [Sept 2016]

$nom = ''Hugo'';

$prenom = ‘Victor’;

Les doubles quottes permettent l’évaluation des variables et caractères spéciaux contenus dans la chaîne (comme en C ou en Shell) alors que les simples ne le permettent pas.

Publicité

Exemples :

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).

Exemple : echo ''Hello Word !\n'';

Opérateur de concaténation de chaînes : . (point)

Exemple 1 :

$foo = ''Hello'';

$bar = ''Word'';

echo $foo.$bar;

Exemple 2 :

$name = ''Henry'';

$whoiam = $name. ''IV'';

Exemple 3 :

$out = ‘Patati’;

$out .= '' et patata…'';

Affichage d’une chaîne avec echo:

Exemples:

echo ‘Hello Word.’;

echo ''Hello ${name}\n'';

echo ''Nom : '', $name;

echo(''Bonjour'');

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

7 Enseignants : Ouali Mohamed et Hedhli Houssem ISET de Bizerte Classes : DSI2 Matière : Pgt côté serveur

Chapitre II : PHP - Notions de base [Sept 2016]

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

addslashes($str) : déspécialise les caractères spéciaux (‘, ‘’, \)

ord($char) : retourne la valeur ASCII du caractère $char

On peut délimiter les chaînes de caractères avec la syntaxe Here-doc.

Exemple :

$essai = <<<EOD

Ma chaîne ''essai''

sur plusieurs lignes.

EOD;

echo $essai;

La valeur de la variable $essai est délimitée par un identifiant que vous nommez librement. La première apparition de cet identifiant doit être précédée de 3 signes inférieurs <. Sa deuxième apparition doit se faire en premier sur une nouvelle ligne. Cette valeur chaîne se comporte comme si elle était délimitée par des doubles quotes ‘’ ‘’ dans le sens où les variables seront évaluées. Par contre il est inutile d’échapper les guillemets, c’est-à-dire que la déspécialisation des doubles quotes devient inutile.

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, i.e. la chaîne de caractère est constante et contient le format d’affichage des variables passées en argument

Exemples :

echo ''Bonjour $name'';

print(''Bonjour $name'');

printf(''Bonjour %s'', $name);

8 Enseignants : Ouali Mohamed et Hedhli Houssem ISET de Bizerte Classes : DSI2 Matière : Pgt côté serveur