PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso...

53
PHP ou le web dynamique

Transcript of PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso...

Page 1: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

PHP

ou le web dynamique

Page 2: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

généralités

• écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso • actuellement stable en version 5 (5.3) et la version 6 est imminente • le P de LAMP (Linux Apache MySQL PHP) • Damien Seguy pionnier français dans la promotion du langage PHP (

nexen.net) • écrit en de C et historiquement basé sur des bibliothèques Perl • Le langage proprement dit est Zend Engine, PHP (Hypertext

Preprocessor) est la version embedded de Zend Engine • par convention l'extension est .php (éventuellement .php4, .php5 si

plusieurs version cohabitent)• PHP 4 n'est plus maintenu depuis fin 2007 • la doc officielle en français http://php.net/manual/fr/index.php

Page 3: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

php cli VS mod_php

• 2 versions php– php cli en ligne de commandes• Chemin à mettre dans la variable

d’environnement $PATH

– mod_php • Permet d’embarquer un interpréteur php dans

les process fils du démon httpd

• 2 fichiers de configuration de php.ini• N.B certains projets utilisent maintenant

le même interpréteur (UwAmp)

Page 4: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

php.ini

• Quelques directives– register_globals: rend les variables GET, POST, de

COOKIE et de SESSION directement accessibles (déconseillé!)

– post_max_size: taille maximale d’une requête en méthode post

– upload_max_fliesize: taille maximale des fichiers ulpoadés

– memory limit: taille de mémoire maximale allouée à PHP– extension_dir: spécifie le répertoire dans lequel PHP doit

chercher des extensions externes à charger – extension: quelles extensions doivent être chargées

Page 5: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Les extensions php

Quelques extensions• simpleXML (inclus en PHP5): fournit des outils très

simples et faciles à utiliser pour convertir du XML en un objet qui peut être manipulé avec ses propriétés et les itérateurs de tableaux.

• SQLite (inclus en PHP5): fait l'interface avec le moteur de base SQLite Embeddable SQL Database Engine (ne nécessite pas l'installation d'un serveur de BDD)

• MySQL: permet d'accéder aux bases de données MySQL

• Pcre: permet la compatibilité avec les expressions régulières Perl

Page 6: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Un standard

•supporté par de nombreux serveurs http•IIS, Netscape, Roxen, IPlanet

•multiplateforme : *nix et windows (wamp, EasyPHP, xampp) •proposé massivement par les hébergeurs

Page 7: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Le web statique

Page 8: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Le web dynamique typique

Page 9: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Le langage

• Dit de type embedded : le code PHP s'insère au milieu du code HTML

• <?php = début de portion de code PHP• ?> = fin de portion de code PHP• Chaque instructions se termine par le caractère ; • commentaire

– // commente une ligne entière – /* … */ commente une portion de code PHP

• PHP est sensible à la casse (il y a un distinction entre les minuscules et les majuscules)

• TRUE (1) et FALSE(0) sont deux contantes prédéfinies

Page 10: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Hello world!!Côté serveur

<html>  <head>    <title>My First PHP Script</title>  </head>  <body>    <p>        <?php echo "Hello World";  ?>    </p>  </body></html>

Page 11: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Version cgi (non embedded)

<?phpecho "<html>";echo "<head>";echo "<title>My First PHP Script</title>";echo "</head>";echo "<body>";echo "<p>Hello World</p>";echo "</body>";echo "</html>";?>

Page 12: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Côté client

<html>  <head>    <title>My First PHP Script</title>  </head>  <body>    <p>        Hello World    </p>  </body></html>

Page 13: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Les constantes

• créer une constante– define("MaConstante", 5);

• Tester si une constante existe– defined("MaConstante");

• Appeler une constante– echo MaConstante; //affiche 5

Page 14: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Les variables

• Toutes les variables commence par le caractère $ suivi d'une lettre ou d'un _

• Le typage est implicite, il dépend de la valeur affectée

<? $MonEntier=3; //est un entier$MonReel=1.23e-12; //est un float$MaChaine="Hello world!"; // est un string$MonEntier="3"; // est un string

?>

Page 15: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Les types

• Boolean : Booléen • Integer : Entier • Réel : Double • String : Chaîne de caractères • Array : Tableau • Object : Objet • Tester le type d’une variable

– gettype($var);• Typer explicitement

– settype($var,  "type");

Page 16: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Opérations sur les variables

• Tester le type d’une variable– gettype($var);

• Typer explicitement– settype($var,  "type");

• Tester si une variable existe– isset($var);

• Détruire une variable et libérer la mémoire qui lui était allouée– unset($var);

• Tester si une variable est non affectée (i.e. =0 ou ="")– empty($var);

Page 17: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

transtypage

<?php$foo = 10;    // $foo est un entier$bar = (double) $foo;    // $bar est un double

?>

• (int) , (integer) - type entier • (bool) , (boolean) - booléen • (double) , (float) , (real) - type double • (string) - type chaîne de caractère • (array) - type tableau • (object) - type objet

Page 18: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Les stringsles délimiteurs "..."

• toutes les variables contenues entre ces délimiteurs seront évaluées– $MyColor="rouges";

echo "Mes souliers sont $MyColor";– affiche Mes souliers sont rouges

• caractères échappés – \\ pour afficher le caractère \ – \$ pour afficher le caractère $ – \" pour afficher le caractère "

Page 19: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Les stringsles délimiteurs ‘...’

• aucune des variables contenues entre ces délimiteurs ne sera évaluée– $MyColor="rouges";

echo 'Mes souliers sont $MyColor';– affiche Mes souliers sont $MyColor

• caractères échappés – \\ pour afficher le caractère \ – \' pour afficher le caractère '

Page 20: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Les stringscaractères non imprimables

• \n nouvelle ligne • \r retour à la ligne • \t tabulation • spécificité

– "\r\n" sous windows – "\n" sous *nix– "\r " sous mac

Page 21: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Fonctions d’affichage

• écrit sur la sortie standard print('hello '.$nom);– echo("hello $nom");– print('hello '.$nom);

• écrit de manière formatée comme en C sur la sortie standard – printf("hello %s", $nom);

• écrit de manière lisible les variables complexes, notamment les tableaux et les objets– print_r($tableau);

Page 22: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Opérateursarithmétiques

• + pour l'addition

• - pour la soustraction

• * pour la multiplication

• / pour la division

• % pour la division entière

Page 23: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Opérateursd’affectation

• $y est affecté à $x – $x = $y

• $y est additionné à $x– $x += $y <=> $x = $x + $y

• $y est soustrait de $x – $x -= $y <=> $x = $x - $y

• $x est multiplié par $y – $x *= $y <=> $x = $x * $y

• $x est divisé par $y – $x /= $y <=> $x = $x / $y

• $y le reste de $x/$y est affecté à $x – $x %= $y <=> $x = $x % $y

Page 24: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Opérateursde comparaisons

• égalité de $x et $y – $x == $y

• égalités des valeurs et des types de $x et $y– $x === $y

• $x est strictement inférieur à $y – $x < $y

• $x est strictement supérieur à $y – $x > $y

• $x est inférieur ou égal à $y – $x =< $y

• $x est supérieur ou égal à $y – $x => $y

Page 25: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Opérateurs logique & concaténation

• logique– && et logique – || ou logique – ! négation

• concaténation : – . concatène deux chaines de caractères

Page 26: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Les tableaux

• le constructeur permettant de créer un tableau est array()

• par défaut l'indexation d'un tableau commence à 0 – $langages = array('français','english','deutsch');

• il est possible de créer un tableau en lui affectant des valeurs – $langages[] = 'français';– $langages[] = 'english';– $langages[] = 'deutsch';

Page 27: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Les tableaux

• spécifier explicitement les indices– $langages[0] = 'français';– $langages[1] = 'english';– $langages[2] = 'deutsch';

• indexer des tableaux avec des chaînes de caractères (tableaux associatifs)

$langages = array( 'fr' => 'français', 'en' => 'english', 'de' => 'deutsch‘);

• sans le constructeur – $langages['fr'] = 'français';– $langages['en'] = 'english';– $langages['de'] = 'deutsch';

Page 28: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Fonctions sur les tableaux

• compte les éléments du tableau $langages– count($langages);

• renvoit TRUE si la chaîne caractère 'deutsch' est un élément du tableau– in_array('deutsch', $langages);

• ajoute l'élémént 'chinese' à la fin du tableau (empile)– array_push($langages, 'chinese');

• renvoit le dernier élément du tableau (dépile) – array_pop($langages);

• il existe de nombreuses fonctions sur les tableaux

Page 29: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Structure conditionnelle

if( $cpt > 0 && $cpt < 4 )

{echo $cpt. “est dans l’intervalle ]0;4[“;

}

elseif( $cpt >= 4 && $cpt < 10)

{echo $cpt. “est dans l’intervalle [4;10[“;

}

else

{ echo $cpt. “est dans l’intervalle ]10;+∞)“;

}

Page 30: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

structure de choix

swicth($animal){

    case 'chien' :        echo " ouaf  ouaf ";    break;    case 'chat' :        echo " miaou miaou ";    break;    default :        echo $Animal." n’est pas un animal domestique ";

}

instruction break est nécessaire si les actions qui le suivent n'ont pas être exécutées

Page 31: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

structure de boucle

$NbDeCoup=6;$i=0;While($i != $NbDeCoup)

{   $CoupAJouer = $NbDeCoup - $i;   echo "il vous reste ". $CoupAJouer. " à jouer";   $i++;}

Page 32: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

structure de boucle inversée

$NbDeCoup=6; $i=0; do {

$CoupAJouer = $NbDeCoup - $i;echo "il vous reste ". $CoupAJouer. " à jouer";$i++;

} While($i != $NbDeCoup); echo “la partie est finie“;

Page 33: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

structure de boucle itérative

$tab=Array(2,4,8,9,0);for ( $i = 1 ; $i <= 4 ; $i++ )

{    echo " élément numéro ".$i;    echo “contient la valeur".$tab[i];}

Page 34: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

structure de parcours de tableau

$langages = array('fr' => ' français', 'en' => 'english', 'de' => 'deutsch');foreach ( $langages as $libelle){

echo "<li>".$libelle."</li>";}

affichera • français • english • deutsch

foreach ( $langages as $key => $libelle){echo "<li>".$key." : ".$libelle."</li>";

}affichera • fr : français • en : english • de : deutsch

Page 35: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

sortie forcée de boucle

l'instruction break pemet de quitter prématurément une boucle

foreach($langages as $libelle){

if($libelle == "english"){

break;}

}

stoppera le parcours du tableau dés que la valeur "english" est rencontrée

Page 36: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

passage forcé à l'itération suivante

Continue permet de passer à l’itération suivante d’une boucle sans exécuter le code qui suit cette instruction dans le bloc de la boucle

foreach($langages as $libelle){

if($libelle == "english"){

continue;}echo "<li>".$libelle."</li>";

}

affichera tous les éléments du tableau langages sauf la valeur english

Page 37: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Inclusion / factorisation

• inclure et exécuter le code de file.php si le fichier existe– include(file.php);

• inclure et exécuter le code de file.php si le fichier existe et s’il n’a pas déjà été inclus par le script courant– include_once(file.php);

• inclure et exécuter le code de file.php (ce fichier doit exister sinon require renverra un message d’erreur)– require(file.php);

• inclure et exécuter le code de file.php (ce fichier doit exister sinon require renverra un message d’erreur) si le fichier n’a pas déjà été inclus par le script courant– require_once(file.php);

Page 38: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Ouvrir / écrire un fichier

Ouvrir un fichier• fopen ( string $filename , string $mode)

– Renvoie un identifiant de ressource. $mode peut être ‘r’, ‘w’, ‘r+’ …

Écrire dans un fichier• fwrite ( resource $handle , string $string)

Lire length octe d’un fichier• fread ( resource $handle , int $length )

Lire un fichier en entier• fread ($handle, filesize ($filename))

Fermer un fichier• fclose ($handle)

Page 39: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

fonctions

• Les fonctions sont des portions de code (entre { … })associés à un nom

• Les fonctions peuvent prendre des arguments dont il n’est pas nécessaire de spécifier le type

• La liste des arguments est entre (…) , séparés par des virgules

• le mot clé function : indique le début d’une déclaration de fonction

• le mot clé return : spécifie le résultat à renvoyer

Page 40: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Fonction typique

<?   function somme ($a,$b)   {      return $a + $b;   }

?>

Page 41: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Appel d’une fonction

<?   $Total=234;   $SousTotal=123;   $Total=somme ($Total,$SousTotal);   echo $Total;// affiche 357

?>

Page 42: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Paramètres par défaut

• Il est possible d’attribuer des valeurs par défaut aux arguments d’une fonction

• Une valeur par défaut ne peut être qu’une constante

• Les arguments ayant une valeur par défaut doivent être placés après les arguments qui n’en ont pas

Page 43: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Exemple d’utilisation de paramètres par défaut

<?function ServirApero($Contenant, $Boisson = "ricard"){

return " Servir un ".$Contenant. " de ".$Boisson;}echo ServirApero("verre");//Affiche Servir un verre de ricardecho ServirApero("chaudron", "bourbon");//Affiche Servir un chaudron de bourbon?>

Page 44: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Portée des variables

• Une variable définie dans une fonction a une portée locale à la fonction

<?    function somme ($a,$b)   {      return $b = $a + $b;   }

?>

Page 45: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Variables locales à la fonction

<?    $a=2;   $b=4;   echo somme ($a,$b);//Affiche 6   echo $a; //Affiche 2   echo $b; //Affiche 4

?>

Page 46: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

le mot clé global

<?    function somme ()   {      global $a, $b;      return $b = $a + $b;   }

?>

Page 47: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Variables globales au script

• Toutes les variables globales du script

<?    $a=2;   $b=4;   echo somme ();//Affiche 6   echo $a; //Affiche 2   echo $b; //Affiche 6

?>

Page 48: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Variables prédéfinies: $GLOBALS

• $GLOBALS est un tableau associatif contenant les références sur toutes les variables globales du script.

• Les noms des variables sont les index du tableau. • Cette fonction est strictement équivalente à la

précédente

function somme ()

{$GLOBALS["b"]=$GLOBALS[“a"]+$GLOBALS["b"];

}

Page 49: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Variables prédéfinies: $_SERVER

• $_SERVER est un tableau contenant des informations comme les en-têtes, dossiers et chemins du script.

• $_SERVER ['REQUEST_METHOD']– get, post, head, put

• $_SERVER ['QUERY_STRING']– La chaîne de requête, si elle existe, qui est utilisée pour accéder à la page.

• $_SERVER ['HTTP_REFERER']– L'adresse de la page (si elle existe) qui a conduit le client à la page courante.

• $_SERVER ['HTTP_USER_AGENT']– une chaîne qui décrit le client HTML utilisé pour voir la page courante

• $_SERVER [‘REMOTE_ADDR']– L'adresse IP du client qui demande la page courante.

• $_SERVER [‘REMOTE_HOST']– Le nom de l'hôte qui lit le script courant (résolution DNS inversée).

Page 50: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Variables prédéfinies: $_COOKIE

• Un tableau associatif des valeurs passées au script courant via les cookies HTTP

• Si la directive register_globals (c'est mal) est active, alors ces variables seront aussi rendues directement accessible dans le contexte d'exécution global.

Page 51: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Variables prédéfinies: $_SESSION

• Un tableau associatif des valeurs stockées dans les sessions, et accessible au script courant.

• Si la directive register_globals (c'est mal) est active, alors ces variables seront aussi rendues directement accessible dans le contexte d'exécution global.

Page 52: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Variables prédéfinies: $_POST, $_GET, $_REQUEST• $_GET : Un tableau associatif des valeurs

passées au script courant via le protocole HTTP et la méthode GET

• $_POST : Un tableau associatif des valeurs passées au script courant via le protocole HTTP et la méthode POST

• $_REQUEST : Un tableau associatif des valeurs passées au script courant via le protocole HTTP et les méthodes GET et POST

• Si la directive register_globals est active (c'est mal), alors ces variables seront aussi rendues directement accessible dans le contexte d'exécution global.

• Toutes les super globales et leur valeurs sont affichées par la commande phpinfo()

Page 53: PHP ou le web dynamique. généralités écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6.

Appel dynamique de fonctions

call_user_func ($func, $arg)

• Permet d’appeler dynamiquement la fonction $func avec $arg en paramètre

• $arg peut être un tableau PHP, une chaîne de caractères (séparée par des virgules)