Vous êtes sur la page 1sur 52

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

LightPath 2014© - http://www.jmrenouard.fr 3


 Les structures de contrôle
 Les références
 Les fonctions

LightPath 2014© - http://www.jmrenouard.fr 4


LightPath 2014© - http://www.jmrenouard.fr 5
 Balise de code :
◦ <?php ?>
◦ <script language="php"> </script>
 Balise de variable :
◦ <?= ?>
◦ <?= nom ?> <?= prenom ?>
 Balise d'expression :
◦ <? echo “bonjour” ?>

LightPath 2014© - http://www.jmrenouard.fr 6


<p>Ceci sera ignoré.</p>
<?php
echo 'Alors que ceci sera analysé par PHP.';
?>
<p>Ceci sera également ignoré.</p>

LightPath 2014© - http://www.jmrenouard.fr 7


 Chaque expression ou commande se termine
par un point virgule (;)
<?php
echo « bonjour »;
echo « le monde »;
?>

LightPath 2014© - http://www.jmrenouard.fr 8


 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 : #

LightPath 2014© - http://www.jmrenouard.fr 9


 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

LightPath 2014© - http://www.jmrenouard.fr 10


LightPath 2014© - http://www.jmrenouard.fr 11
 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

LightPath 2014© - http://www.jmrenouard.fr 12


 Booléen : 2 valeur vrai ou faux
 Entier : valeur numérique entière
 Nombre à virgule flottante
 Chaîne de caractère

LightPath 2014© - http://www.jmrenouard.fr 13


 Les tableaux à index
 Les tableaux à clé
 Imbrication des tableaux
 Les classes
 Les objets

LightPath 2014© - http://www.jmrenouard.fr 14


 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()

LightPath 2014© - http://www.jmrenouard.fr 15


 Mixed : une variable acceptant plusieurs types
 Nombre : entier ou nombre à virgule
 Callback : nom d'une fonction sous forme de
chaîne

LightPath 2014© - http://www.jmrenouard.fr 16


LightPath 2014© - http://www.jmrenouard.fr 17
 Essentiel
 Variables pré-définies
 Portée des variables
 Les variables dynamiques
 Variables externes à PHP

LightPath 2014© - http://www.jmrenouard.fr 18


 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

LightPath 2014© - http://www.jmrenouard.fr 19


 $_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

LightPath 2014© - http://www.jmrenouard.fr 20


 $_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

LightPath 2014© - http://www.jmrenouard.fr 21


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

LightPath 2014© - http://www.jmrenouard.fr 22


 Variable classique :
◦ $a= 'bonjour';
 Variables variables
◦ $$a='monde'; => $bonjour='monde';
 Utilisation
◦ echo « $a ${$a} »;
◦ echo « $a $bonjour »;

LightPath 2014© - http://www.jmrenouard.fr 23


 Passage par les variables pré-définies :
◦ $_GET
◦ $_POST
◦ $_COOKIE
◦ $_FILES
◦ $_ENV

LightPath 2014© - http://www.jmrenouard.fr 24


LightPath 2014© - http://www.jmrenouard.fr 25
 Sensible à la case
 Pas d'affectation possible
 define("FOO", "something");
 echo FOO;

LightPath 2014© - http://www.jmrenouard.fr 26


 Pas de réservation mémoire
 Pas affectation possible

 Idéal pour des paramètres invariants


 Performance  substitution

LightPath 2014© - http://www.jmrenouard.fr 27


LightPath 2014© - http://www.jmrenouard.fr 28
 Tout ce qui a une valeur
 Type d'expression
◦ Fonctions
◦ Affectations
◦ Opérations
◦ Appel de fonctions

LightPath 2014© - http://www.jmrenouard.fr 29


LightPath 2014© - http://www.jmrenouard.fr 30
 incrémentation/décrémentation: ++ -
 Opérateurs arithmétiques : * / % + -
 Opérateurs de chaîne : + - .
 Opérateurs bit à bit : << >> & ^ |

LightPath 2014© - http://www.jmrenouard.fr 31


 Opérateurs de comparaison : < <= > >= ==
!= ===
 Opérateurs logiques : && || and or not !
 Opérateurs d'affectation : = += -= *= /= .=
%= &= |= ^= <<= >>=

LightPath 2014© - http://www.jmrenouard.fr 32


LightPath 2014© - http://www.jmrenouard.fr 33
 If / else / elseif
 While / do-while
 For / foreach
 Break / continue
 switch

LightPath 2014© - http://www.jmrenouard.fr 34


 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"; }

LightPath 2014© - http://www.jmrenouard.fr 35


 Expression du TANT QUE
 Expression des boucles
 Exemple :
$i = 1;

while ($i <= 10) {

echo $i++; /* La valeur affiche est $i avant l'incrémentation


*/

LightPath 2014© - http://www.jmrenouard.fr 36


 Raccourci d'expression while
 for (expr1; expr2; expr3) {...}
 Peut être traduit par :
expr1;

while (expr2) {

...

expr3; }

LightPath 2014© - http://www.jmrenouard.fr 37


 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

LightPath 2014© - http://www.jmrenouard.fr 38


 Expression de choix
 Expression de l'alternative
 Expression du regroupement
 If / else / elseif : complexe > 3.
 Fonctionne aussi avec des chaînes

LightPath 2014© - http://www.jmrenouard.fr 39


LightPath 2014© - http://www.jmrenouard.fr 40
 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

LightPath 2014© - http://www.jmrenouard.fr 41


$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

LightPath 2014© - http://www.jmrenouard.fr 42


LightPath 2014© - http://www.jmrenouard.fr 43
 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

LightPath 2014© - http://www.jmrenouard.fr 44


 Pas de paramètre
 Passage par copie
 Passage par référence
 Valeur par défaut
 Paramètres variables

LightPath 2014© - http://www.jmrenouard.fr 45


 Pas de valeur possible
 La valeur peut-être de tout type
 Référence possible

LightPath 2014© - http://www.jmrenouard.fr 46


 Les fonctions variables
◦ $a= 'uneFonction';
◦ $a();
 Les fonctions internes
◦ Fonctions fournies par des modules PHP

LightPath 2014© - http://www.jmrenouard.fr 47


 Les fonctions variables
◦ $func='toto';

◦ function toto() { echo “cooll”;}

◦ $func();
 Possibilités de retour de reférence
◦ function &retourne_ref()

LightPath 2014© - http://www.jmrenouard.fr 48


 Argument par défaut
◦ function ouvrir($passwd='toto')
 Références et paramètres
◦ function lire(&$livre)

LightPath 2014© - http://www.jmrenouard.fr 49


 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
◦ jmrenouard@lightpath.fr

 Jean-Marie RENOUARD
◦ jmrenouard@gmail.com
◦ Twitter: @jmrenouard
◦ http://www.jmrenouard.fr

LightPath 2014© - http://www.jmrenouard.fr 52

Vous aimerez peut-être aussi