Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parSébastien Després Modifié depuis plus de 8 années
1
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen Mahrous Grenoble INP – Pagora 10 novembre 2014 Cours en Réponse à questions, n° 2
2
Groupe : ? Autres groupes ? ? Profs Comment lire la doc. de référence de PHP, php.net ? Qu’est-ce que le code « !== FALSE » trouvé dans l’exemple de fgetcsv() ? Petites révisions des structures de contrôle de boucle : while, for et foreach… Quelle est la différence entre != et !== ? Qu’est vraiment un tableau associatif ? Différence entre tableau indexé et tableau associatif ? Questions reçues
3
Description de la « déclaration » Le «manuel de référence » de PHP type de ce qui est « rendu » type des paramètres crochet pour marquet que le « contenu » est facultatif
4
Description des paramètres Le «manuel de référence » de PHP ce qui est « rendu » paramètres NULL si échec
5
Valeur de retour Le «manuel de référence » de PHP Notes !! FALSE si fin de fichier NULL si échec
6
Un exemple du manuel traitement d’une ligne appel de la fonction Si l’affectation « rend » FALSE, on sort de la boucle fermeture du fichier Le fichier doit d’abord être ouvert ouverture du ficher Après chaque instruction, la tête de lecture est positionné pour la prochaine lecture
7
L’affectation qui « rend » FALSE ou NULL if ( ($handle = fopen("test.csv", "r") ) !== FALSE) {... while ( ($data = fgetcsv($handle, 1000, ",") ) !== FALSE) {… affectation comparaison Et pourquoi pas != ?
8
Opérateurs d'affectation http://php.net/manual/fr/language.operators.assignment.php Opérateurs d’affectation <?php $a = ($b = 4) + 5; echo "a=$a, b=$b \n"; ?> <?php $a = 3; $a += 5; $b = "Bonjour "; $b.= " tout le monde!"; ?> affecte la valeur 8 à la variable $a correspond à l'instruction '$a = $a + 5'; affecte la valeur "Bonjour tout le monde!" à la variable $b : identique à $b = $b." tout le monde!"; $a est maintenant égal à 9, et $b vaut 4
9
Le type booléen : FALSE, TRUE http://php.net/manual/en/language.types.boolean.php http://php.net/manual/fr/language.types.boolean.php
10
http://php.net/manual/en/language.types.null.php http://php.net/manual/fr/language.types.null.php La valeur spéciale NULL
11
(=,) ==, !=, ===, !== : opérateurs de comparaison Opérateurs d'affectation : = http://php.net/manual/fr/language.operators.assignment.php Opérateurs de comparaison : ==, !=, ===, !== http://php.net/manual/fr/language.operators.comparison.php ExempleNomRésultat $a == $bEgalTRUE si $a est égal à $b après le transtypage. $a === $bIdentiqueTRUE si $a est égal à $b et qu'ils sont de même type. $a != $bDifférentTRUE si $a est différent de $b après le transtypage. $a <> $bDifférentTRUE si $a est différent de $b après le transtypage. $a !== $bDifférentTRUE si $a est différent de $b ou bien s'ils ne sont pas du même type. $a < $bPlus petit queTRUE si $a est strictement plus petit que $b. $a > $bPlus grandTRUE si $a est strictement plus grand que $b. $a <= $bInférieur ou égalTRUE si $a est plus petit ou égal à $b. $a >= $bSupérieur ou égalTRUE si $a est plus grand ou égal à $b.
12
Comparaison d’égalité avec == ou === Comparaison de types en PHP http://php.net/manual/fr/types.comparisons.php == TRUEFALSE 10 NULL array()"php""" TRUE FALSETRUEFALSE TRUEFALSE TRUEFALSETRUE FALSETRUE 1 FALSETRUEFALSE 0 TRUEFALSETRUE FALSETRUE === TRUEFALSE 10 NULL array()"php""" TRUE FALSE TRUEFALSE 1 TRUEFALSE 0 TRUEFALSE $a == $bEgalTRUE si $a est égal à $b après le transtypage. $a === $bIdentiqueTRUE si $a est égal à $b et qu'ils sont de même type. $a != $bDifférentTRUE si $a est différent de $b après le transtypage. $a <> $bDifférentTRUE si $a est différent de $b après le transtypage. $a !== $bDifférentTRUE si $a est différent de $b ou bien s'ils ne sont pas du même type.
13
L’affectation qui « rend » FALSE ou NULL if (($handle = fopen("test.csv", "r")) !== FALSE) {... while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {… Le manuel de référence de PHP dit que fopen() « Retourne une ressource représentant le pointeur de fichier, ou FALSE si une erreur survient. » Donc en cas d’erreur, $handle vaut FALSE. Pour comparer « explicitement » à FALSE, on utilise === et !==. Ici, on ne veut traiter que s’il n’y a pas eu d’erreur. Le manuel de référence de PHP dit que fopen() « fgetcsv() retourne NULL si un paramètre handle invalide est fourni ou FALSE en cas d'autres erreurs, y compris la fin du fichier. » Donc en cas d’erreur, $handle vaut FALSE. Pour comparer « explicitement » à FALSE, on utilise === et !==. Ici, on ne veut traiter que s’il n’y a pas eu d’erreur. http://php.net/manual/fr/function.fopen.php http://php.net/manual/fr/function.fgetcsv.php
14
empty(), is_null(), isset(), if($x) Comparaison de types en PHP http://php.net/manual/fr/types.comparisons.phphttp://php.net/manual/fr/types.comparisons.php Après l’affectation de $x, définie par l’expression de la colonne 1, le type de al variable est fourni en résultat de la fonction gettype($x) dans la colonne 2 puis les résultats de empty($x), is_null($x), isset($x) dans les colonnes 3 à 5, et la dernière colonne donne le résultat du test fi($x). Expression gettype()empty()is_null()isset()boolean : if($x) $x = ""; chaîne de caractères TRUEFALSETRUEFALSE $x = null; NULL TRUE FALSE var $x; NULL TRUE FALSE $x est indéfini NULL TRUE FALSE $x = array(); array TRUEFALSETRUEFALSE $x = false; boolean TRUEFALSETRUEFALSE $x = true; boolean FALSE TRUE $x = 1; entier FALSE TRUE $x = 42; entier FALSE TRUE $x = 0; entier TRUEFALSETRUEFALSE $x = -1; entier FALSE TRUE $x = "1"; chaîne de caractères FALSE TRUE $x = "0"; chaîne de caractères TRUEFALSETRUEFALSE $x = "-1"; chaîne de caractères FALSE TRUE $x = "php"; chaîne de caractères FALSE TRUE $x = "true"; chaîne de caractères FALSE TRUE $x = "false"; string FALSE TRUE
15
Boucle while incrément du compteur fin de la boucle initialisation du compteur condition de sortie de la boucle corps de la boucle récupération de la borne instruction while
16
Lire : http://php.net/manual/fr/language.types.array.php http://php.net/manual/fr/function.array.php Ce sont des « tableaux associatifs » : ils associent des clés à des valeurs. Référencement par index numérique ou textuel Faire afficher les valeurs d’un tableau Tableau en PHP $data['nom'] $data['prenom'] $data[0] $data[1] echo "\n La première valeur est ".$data[0]; echo "\n La deuxième valeur est $data[1]"; echo "\n La deuxième valeur est ${data[1]}"; print( "\n La valeur du tableau à l’index « nom » est ".$data['nom'] ); echo "\n Toutes les valeurs du tableau \$data sont "; print_r($data);
17
Lire : http://php.net/manual/fr/language.types.array.php Tableau en PHP
18
Explictement par le constructeur PHP $entete = array( 'nom', 'prenom', ); Valeur par valeur, indice implicite $entete[] = 'nom'; $entete[] = ’prenom’; Implicitement comme résultat d’une fonction $entete = fgetcsv($pointeTeteFic); Valeur par valeur avec l’indice $entete[0] = 'nom'; $entete[1] = 'prenom'; Déclaration d’un Tableau en PHP Valeur par valeur avec un indice textuel $ligne[‘nom’] = ’De Penguern De Trisigondi’; $ligne[‘prenom’] = ’Pierre-Antoine'; $ligne[$entete[0]] = ’De Penguern De Trisigondi’; $ligne[$entete[1]] = ’Pierre-Antoine’;
19
Avec l’instruction for : Exemple de fgetcsv() Parcours d’un Tableau en PHP : for incrément du compteur récupération de la borne comparaison du compteur pour sortir initialisation d’un compteur $num champs à la ligne $row: \n"; $row++; for ($c=0; $c \n"; } } fclose($handle); } ?> contenu de la boucle
20
Parcours d’un Tableau en PHP : foreach Avec l’instruction foreach : Amélioration de l’exemple de fgetcsv() instancie la valeur associée Plus besoin de récupérer la borne instancie la clé de chaque valeur spécifie le tableau $num champs à la ligne $row: \n"; $row++; foreach ($data as $k => $v) { echo "data[$k] = ". $data[$k]. "= ${data[$k]} = $v \n"; } } fclose($handle); } ?> contenu de la boucle
21
La mémoire occupée par un tableau Des petits essais à faire pour manipuler les tableaux en PHP : http://tiprof.fr/SitesWebDynamic/Techniques-swd/05_Tableaux/tableau-PHP.html Un tutoriel sur les tableaux PHP et la liste de toute les fonctions PHP sur les tableaux : http://www.atelierphp.net/lesson_05_arrays/lesson_05.php Explications avec illustration graphique de la place prise en mémoire pour les tableaux PHP : http://julien-pauli.developpez.com/tutoriels/php/internals/variables/?page=page_4#LIV Explications sur la manière dont PHP s’y prend pour mémoriser un tableau : grosso-modo, un calcul est appliqué sur les clés pour identifier une liste d’éléments (les clés sont « hashées ») ; deux clés peuvent conduire à une collision; il y a alors plusieurs éléments dans la liste; chaque élément de la liste contient la clé, la valeur, et les adresses mémoire de ses éléments précédent et suivant. http://stackoverflow.com/questions/25081344/how-does-php-memory-actually-work
22
La mémoire occupée par un tableau Exemples interactifs de commandes sur les tableaux avec affichage de la place mémoire occupée http://tiprof.fr/Essais-php- js/tableaux/tailleMemoire- pourTableaux.php?n1=on&n2=on&n8=on
23
Quelques fonctions très utiles sur les tableaux
24
$_SERVER $_GET $_POST $_REQUEST Exemples de tableaux : les variables d’environnement foreach($_SERVER as $k => $v){ echo "\n $k $v »; }
25
http://php.net/manual/fr/function.fgetcsv.php Liens
26
Structuration du code : Modularité, inclusion et contrôle
27
header.php Structuration du code footer.php vars.php
28
Structuration du code index.php
29
Composition d’une page
30
http://lmgtfy.com/?q=list+files+php Exemple de menu dynamique
31
Les variables d’environnement http://www.tiprof.fr/PHP-mySQL/ressources/php/PHP-GuidePlus.html http://www.tiprof.fr/PHP-mySQL/ressources/php/PHP-GuidePlus.html Et beaucoup d’autres… http://www.tiprof.fr/PHP-mySQL/ressources/php/PHP-GuidePlus.html http://www.tiprof.fr/PHP-mySQL/ressources/php/PHP-GuidePlus.html Aller plus loin…
32
Retour aux formulaires: GET, POST Osef.php Ex_form.html Exemple en live…
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.