Syntaxe du langage PHP
-
Upload
jean-marie-renouard -
Category
Technology
-
view
1.332 -
download
3
description
Transcript of Syntaxe du langage PHP
Jean-Marie Renouard LightPath 2014©
Le logo PHP est du domaine public http://commons.wikimedia.org/wiki/File:PHP-logo.svg
Ce document est licencié sous licence ◦ Attribution-NonCommercial-ShareAlike
◦ CC BY-NC-SA
Plus de détails: http://creativecommons.org/licenses/by-nc-sa/3.0/fr/
LightPath 2014© - http://www.jmrenouard.fr 2
La syntaxe de base
Les types
Les variables
Les constantes
Les expressions
Les opérateurs
3 LightPath 2014© - http://www.jmrenouard.fr
Les structures de contrôle
Les références
Les fonctions
4 LightPath 2014© - http://www.jmrenouard.fr
5 LightPath 2014© - http://www.jmrenouard.fr
Balise de code :
◦ <?php ?>
◦ <script language="php"> </script>
Balise de variable :
◦ <?= ?>
◦ <?= nom ?> <?= prenom ?>
Balise d'expression :
◦ <? echo “bonjour” ?>
Privilégier les tags PHP suivants: <?php ?>
◦ Les tags courts sont déconseillés car non actifs.
◦ short_open_tag=1 # Active les shorts tags
6 LightPath 2014© - http://www.jmrenouard.fr
<p>Ceci sera ignoré.</p>
<?php
echo 'Alors que ceci sera analysé par PHP.';
?>
<p>Ceci sera également ignoré.</p>
7 LightPath 2014© - http://www.jmrenouard.fr
Chaque expression ou commande se termine par un point virgule (;)
<?php
echo « bonjour »;
echo « le monde »;
?>
8 LightPath 2014© - http://www.jmrenouard.fr
Les commentaires type C :
◦ Bloc de commentaire sur plusieurs ligne : /* et */
Les commentaires type C++ :
◦ Bloc de commentaire uni-ligne : //
Les commentaires type shell Unix ou Perl
◦ Bloc de commentaire uni-ligne : #
9 LightPath 2014© - http://www.jmrenouard.fr
include
◦ Inclus le contenu d'un autre fichier
◦ Si il y a du code PHP, il est interprété et executé
include_once
◦ Le code n'est inclus que la première fois
require, require_once :
◦ Similaire à include et include_once
◦ Produit une erreur fatale au lieu d'une alerte
10 LightPath 2014© - http://www.jmrenouard.fr
11 LightPath 2014© - http://www.jmrenouard.fr
4 types scalaires
2 types complexes
2 types spéciaux
3 pseudo-types
var_dump() affiche le type et la valeur.
gettype() retourne le type d'une variable
12 LightPath 2014© - http://www.jmrenouard.fr
Booléen : 2 valeur vrai ou faux
Entier : valeur numérique entière
Nombre à virgule flottante
Chaîne de caractère
13 LightPath 2014© - http://www.jmrenouard.fr
Les tableaux à index
Les tableaux à clé
Imbrication des tableaux
Les classes
Les objets
14 LightPath 2014© - http://www.jmrenouard.fr
Ressource :
◦ référence sur un type externe
◦ Données produites par certains fonctions
NULL : valeur signifiant abscence de valeur
◦ Fonctions utilitaires : isset(), is_null() , unset()
15 LightPath 2014© - http://www.jmrenouard.fr
Mixed : une variable acceptant plusieurs types
Nombre : entier ou nombre à virgule
Callback : nom d'une fonction sous forme de chaîne
16 LightPath 2014© - http://www.jmrenouard.fr
17 LightPath 2014© - http://www.jmrenouard.fr
Essentiel
Variables pré-définies
Portée des variables
Les variables dynamiques
Variables externes à PHP
18 LightPath 2014© - http://www.jmrenouard.fr
Variable : $+Nom de la variable
Sensible à la casse ( $a != $A)
Spécification d'une variable: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*
Pas d'espace de nommage
Collision de nom possible
19 LightPath 2014© - http://www.jmrenouard.fr
$_GLOBALS: tableau des variables.
$_SERVER: variables du serveur Web
$_GET: variables d'un requête HTTP GET
$_POST: variables d'un requête HTTP POST
$_COOKIE: variables contenues dans les cookies
20 LightPath 2014© - http://www.jmrenouard.fr
$_FILES: variables contenant les informations sur les « fichiers Postés »
$_ENV : variables d'environnement
$_REQUEST: variables d'entrée et peu sûres
$_SESSION: variables contenues en session
21 LightPath 2014© - http://www.jmrenouard.fr
Global indique d'une variable fait partie de l'espace de nommage globale.
Global est utilisé pour les variables dans les fonctions
Static indique d'une variable n'est pas réinitialisé à la déclaration.
22 LightPath 2014© - http://www.jmrenouard.fr
Variable classique :
◦ $a= 'bonjour';
Variables variables
◦ $$a='monde'; => $bonjour='monde';
Utilisation
◦ echo « $a ${$a} »;
◦ echo « $a $bonjour »;
23 LightPath 2014© - http://www.jmrenouard.fr
Passage par les variables pré-définies :
◦ $_GET
◦ $_POST
◦ $_COOKIE
◦ $_FILES
◦ $_ENV
24 LightPath 2014© - http://www.jmrenouard.fr
25 LightPath 2014© - http://www.jmrenouard.fr
Sensible à la case
Pas d'affectation possible
define("FOO", "something");
echo FOO;
26 LightPath 2014© - http://www.jmrenouard.fr
Pas de réservation mémoire
Pas affectation possible
Idéal pour des paramètres invariants
Performance substitution
27 LightPath 2014© - http://www.jmrenouard.fr
28 LightPath 2014© - http://www.jmrenouard.fr
Tout ce qui a une valeur
Type d'expression
◦ Fonctions
◦ Affectations
◦ Opérations
◦ Appel de fonctions
29 LightPath 2014© - http://www.jmrenouard.fr
30 LightPath 2014© - http://www.jmrenouard.fr
incrémentation/décrémentation: ++ --
Opérateurs arithmétiques : * / % + - **
Opérateurs de chaîne : + - .
Opérateurs bit à bit : << >> & ^ |
31 LightPath 2014© - http://www.jmrenouard.fr
Opérateurs de comparaison : < <= > >= == != ===
Opérateurs logiques : && || and or not !
Opérateurs d'affectation : = += -= *= /= .= %= &= |= ^= <<= >>=
32 LightPath 2014© - http://www.jmrenouard.fr
33 LightPath 2014© - http://www.jmrenouard.fr
If / else / elseif
While / do-while
For / foreach
Break / continue
switch
34 LightPath 2014© - http://www.jmrenouard.fr
Vrai si l'expression vaut différent de 0 ou TRUE
Exemple :
if ($a > $b) {
echo "a est plus grand que b";
} elseif ($a == $b) {
echo "a est égal à b";
} else { echo "a est plus petit que b"; }
35 LightPath 2014© - http://www.jmrenouard.fr
Expression du TANT QUE
Expression des boucles
Exemple :
$i = 1;
while ($i <= 10) {
echo $i++; /* La valeur affiche est $i avant l'incrémentation
*/
}
36 LightPath 2014© - http://www.jmrenouard.fr
Raccourci d'expression while
for (expr1; expr2; expr3) {...}
Peut être traduit par :
expr1;
while (expr2) {
...
expr3; }
37 LightPath 2014© - http://www.jmrenouard.fr
Instructions d'altération de boucle
Break dans une boucle while, for, foreach
◦ Fin d'itération.
◦ Sortie de boucle
Continue dans une bloucle :
◦ Terminaison de la boucle courante
◦ Passage à la boucle suivante
38 LightPath 2014© - http://www.jmrenouard.fr
Expression de choix
Expression de l'alternative
Expression du regroupement
If / else / elseif : complexe > 3.
Fonctionne aussi avec des chaînes
39 LightPath 2014© - http://www.jmrenouard.fr
40 LightPath 2014© - http://www.jmrenouard.fr
Il s'agit d'une adresse
Utilisé comme adresse lors de l'initialisation (=&)
Utilisé comme variable simple le reste du temps
Evite la recopie de zone mémoire
Manipulation des adresses mémoire
41 LightPath 2014© - http://www.jmrenouard.fr
$a =1
$b =& $a; //b est une référence sur $a
echo $a; //1
echo $b //1
$a=4
echo $b //4
$b = 30;
echo $a //30
42 LightPath 2014© - http://www.jmrenouard.fr
43 LightPath 2014© - http://www.jmrenouard.fr
Fonction : espace de nommage particulier
Etanche depuis l'extérieur
Regroupement de code commun
Paramètre : ce qui rentre de l'extérieur
Valeur de retour ce qui sort ou reste de la fonction
44 LightPath 2014© - http://www.jmrenouard.fr
Pas de paramètre
Passage par copie
Passage par référence
Valeur par défaut
Paramètres variables
45 LightPath 2014© - http://www.jmrenouard.fr
Pas de valeur possible
La valeur peut-être de tout type
Référence possible
46 LightPath 2014© - http://www.jmrenouard.fr
Les fonctions variables
◦ $a= 'uneFonction';
◦ $a();
Les fonctions internes
◦ Fonctions fournies par des modules PHP
47 LightPath 2014© - http://www.jmrenouard.fr
Les fonctions variables
◦ $func='toto';
◦ function toto() { echo “cooll”;}
◦ $func();
Possibilités de retour de reférence
◦ function &retourne_ref()
48 LightPath 2014© - http://www.jmrenouard.fr
Argument par défaut
◦ function ouvrir($passwd='toto')
Références et paramètres
◦ function lire(&$livre)
49 LightPath 2014© - http://www.jmrenouard.fr
Nouveautés PHP 5.6
Possibilité de gérer des arguments variables <?php
function fvar($p1, ...$params) { printf(‘Parametre 1: %s’, $p1);
$i=2;
// $params est un tableau contenant le reste des arguments.
foreach ($params as $pn ) {
printf(‘Parametre %d: %d’,$i, $pn);
$i++
}
?>
LightPath 2014© - http://www.jmrenouard.fr 50
Exemple d’appel: fvar(1);
fvar (1, 2); fvar (1, 2, 3); fvar (1, 2, 3, 4); fvar (1, 2, 3, 4, 5);
LightPath 2014© - http://www.jmrenouard.fr 51
LightPath: ◦ Société de conseil et d’ingénierie
◦ Formations, Conseil, Audit et mise en œuvre
Jean-Marie RENOUARD ◦ [email protected]
◦ Twitter: @jmrenouard
◦ http://www.jmrenouard.fr
LightPath 2014© - http://www.jmrenouard.fr 52