![]() |
Formation PHP |
||
|
|||
Définition:
C'est une petite information stockée en mémoire temporairement. Ca n'a pas une grande durée de vie.
En PHP, la variable (l'information) existe tant que la page est en cours de génération.
Dès que la page PHP est générée, toutes les variables sont supprimées de la mémoire car elles ne servent plus à rien.
Ce n'est donc pas un fichier qui reste stocké sur le disque dur mais une petite information temporaire.
Ce qu'il faut retenir, c'est qu' une variable est toujours constituée de 2 choses :
L'affectation se fait toujours de la droite vers la gauche
A = B, A va prendre la valeur de B
A = A + B, A va prendre la valeur de A+B
$a = $a+1 ; // identique à la ligne ci dessous
$a ++ ; // Permet d'incrémenter
$a -- ; // Permet de décrémenter
$a = ($b<100);
$a = true; // Le résultat est égal à true
$a = 10;
$a.= 30; // Permet de concaténer, le résultat serait 1030
On peut mettres 3 types d'éléments dans une variable
Détermine le type de variable
$a=$a+$b;
$a+=$b;
$a-=$b;
$a*=$b;
$a/=$b;
$a.=$b;
$a=$a.$b;
$a++;
$b--;
| Opérateur | Signification | Exemple |
| + | Addition | $a=10+5 |
| - | Soustraction | $b=10-$a |
| * | Multiplication | $c=10*3 |
| / | Division | $d=$b/5 |
| ++ | Ajoute 1 | $i ++ (n'est rien d'autre que l'abbréviation de $i=$i+1) |
| -- | Soustrait 1 | $i -- (equivalentà $i=$i-1) |
Insérer des balises HTML dans PHP
Concaténer des chaines de caractères et des variables
En PHP, on utilise le . pour concaténer
<?php
$nom = 'Dupont';
$prenom = 'Pierre';
echo $nom.$prenom; //va afficher "DupontPierre"
echo $nom.' '.$prenom; //va afficher "Dupont Pierre"
echo '$nom.$prenom'; //va afficher "$nom.$prenom"
echo '$nom$prenom'; //va afficher $nom$prenom
$nom .= $prenom; //est équivalent à $nom = $nom . $prenom
echo $nom; //affichera "DupontPierre"
$nom = 'Dupont';
$nom .= ' '.$prenom;
echo $nom; //affichera "Dupont Pierre"
?>
La fonction isse
t() verifie si une variable est bien définie,
ce n'est que dans ce cas qu'elle renvoie la valeur vrai (true)
Dans le cas inverse, le résultat du test est false
Permet de tester si une variable existe ou a la valeur 0 et renvoie "true" ou "false", beaucoup moins utilisé que isset()
| Caractère | Signification | Exemples de valeurs possibles : |
|---|---|---|
| Jour | ||
| j | Jour du mois sur deux chiffres sans les zéros initiaux | 1 à 31 |
| d | Jour du mois sur deux chiffres avec un zéro initial en fonction du jour | 01 à 31 |
| l (L minuscule) | Jour de la semaine en anglais | Sunday à Saturday |
| w | Jour de la semaine au format numérique | 0 (dimanche) à 6 (samedi) |
| z | Jour de l'année | 0 à 366 |
| Semaine | ||
| W | Numéro de semaine dans l'année (les semaines commencent le lundi) | Exemple : 42 (la 42ème semaine de l'année) |
| Mois | ||
| F | Mois, textuel, version longue; en anglais, comme January ou December | January à December |
| m | Mois au format numérique, avec zéros initiaux | 01 à 12 |
| n | Mois sans les zéros initiaux | 1 à 12 |
| t | Nombre de jours dans le mois | 28 à 31 |
| Année | ||
| L | Est ce que l'année est bissextile | 1 si bissextile, 0 sinon. |
| Y | Année sur 4 chiffres | Exemples : 1999 et 2003 |
| y | Année sur 2 chiffres | Exemples : 99 et 03 |
| Heure | ||
| a | Ante méridien et Post méridien (minuscules) | am ou pm |
| A | Ante méridien et Post méridien (majuscules) | AM ou PM |
| g | Heure (format 12h) sans les zéros initiaux | 1 à 12 |
| G | Heure (format 24h) sans les zéros initiaux | 0 à 23 |
| h | Heure (format 12h) avec les zéros initiaux | 01 à 12 |
| H | Heure (format 24h) avec les zéros initiaux | 00 à 23 |
| s | Secondes avec zéros initiaux | 00 à 59 |
| i | Minutes avec zéros initiaux | 00 à 59 |
| I (i majuscule) | l'heure d'été est activée ou pas 1 si oui, 0 sinon. |
Un timestamp, c'est un nombre.
C'est le nombre de secondes écoulées depuis le 1er Janvier 1970 à Minuit.
Pourquoi depuis le 1er Janvier 1970 à Minuit ? C'est symbolique, il fallait bien prendre un point de départ.
En fait, ça représente le début de l'époque où le système d'exploitation Unix a été créé.
Le 1er Janvier 1970 à Minuit, le timestamp avait pour valeur 0. Aujourd'hui, beaucoup beaucoup de secondes se sont écoulées
Pour afficher le timestamp de la seconde actuelle, on utilise la fonction
time()
Il est possible de fournir un second paramètre à date (après les lettres) : le timestamp sur lequel vous voulez obtenir des informations.
Par défaut, date utilise le timestamp actuel : elle renvoie donc l'heure actuelle, le jour actuel etc...
Mais si vous lui donnez un timestamp, elle fera des calculs sur ce moment-là.
Allez, pour faire un test grandeur nature, je vous donne le timestamp qu'il était au moment où j'ai écrit ces lignes
Exemple
Lorsque vous écrirez une news, il vous suffira d'enregistrer juste le timestamp, et vous serez capables grâce à ce nombre de ressortir toutes les infos possibles et imaginables dessus : le jour où la news a été postée, l'heure qu'il était etc... C'est donc très très puissant !
Enfin, une dernière chose qu'il peut être très utile de savoir faire : vous aimeriez connaître le timestamp qu'il était le 5 Février 1998 à 13h 45min 26s.
Pour récupérer le timestamp correspondant, on va utiliser la fonction mktime. On va lui donner en paramètre une date, et elle va nous ressortir le timestamp correspondant.
Cette fonction peut prendre pas mal de paramètres, en voici la liste dans l'ordre :
PHP permet de créer ses fonctions personnelles
Opérateurs de comparaison
| > | |
| < | |
| >= | |
| <= | |
| != | Différent |
| == | Egal |
| <> | Différent |
Conditions multiples : and or
| Mot-clé | Signification | Symbole équivalent | Explication | Exemple |
| AND | Et | && | Vérifie que toutes les conditions sont réalisées | ((condition1)&&(condition2)) |
| OR | Ou | || | Vérifie qu'une des conditions est réalisée | ((condition1)||(condition2)) |
| xor | OU exclusif | Vérifie qu'une et une seule des conditions est réalisée | ((condition1)XOR(condition2)) | |
| ! | NON logique | Inverse l'état d'une variable booléenne (retourne la valeur 1 si la variable vaut 0, 0 si elle vaut 1) | (!condition) |
Cette boucle est très utile lorsque vous souhaitez incrémenter une variable sur une certaine plage de valeurs connue à l'avance
$i++ Incrémenter
$i--
Décrémenter
Cette boucle qui est une des plus utilisées en PHP va vous permettre d'effectuer une ou plusieurs actions tant que la condition que vous placerez à l'intérieur des parenthèses sera vérifiée
Voilà ce qui se passe dans une boucle :
Elle a des similitudes avec la boucle while.
Néanmoins, une différence de taille les séparent.
Reprenons notre exemple précédent avec la boucle while :
Vous constatez que si on initialise $i à 8, la boucle ne sera jamais exécutée, car dès l'analyse de la condition, 8 < 7 renverra FALSE (8 est bien inférieur à 7 ).
La boucle do-while permet
d'effectuer au moins une fois une opération, et si une condition est vraie, reboucler autant de fois que vous le souhaitez.
Il s'agit de variables qui peuvent contenir plusieurs valeurs.
On peut donc imaginer leur représentation sous forme d'un tableau.
Pour différencier les valeurs, pour savoir comment on va dire à PHP "je veux telle valeur de cette variable" il faut bien distinguer les valeurs par des indices.
Voilà comment on peut représenter tout ça :
| Indice | Valeur |
|---|---|
| 0 | Maurice |
| 1 | Jean |
| 2 | Pierre |
| 3 | Paul |
| 4 | Gérard |
<?php
// Syntaxe 1
$Prenom=array();
$Prenom[0]='Maurice';
$Prenom[1]='Jean';
$Prenom[2]='Pierre';
$Prenom[3]='Paul';
$Prenom[4]='Gérard';
echo $Prenom[4];
?>
<?php
// Syntaxe equivalente
$Prenoms=array(0=>'Maurice',
1=>'Jean',
2=>'Pierre',
3=>'Paul',
4=>'Gérard');
echo $Prenoms[4];
?>
<?php
/* Dans le cas où vous souhaitez garder le premier indice à zéro (et les suivants incrémentés de 1 à chaque fois) vous pouvez également utiliser la syntaxe suivante */
$Prenoms1=array('Maurice','Jean','Pierre','Paul','Gérard');
echo $Prenoms1[4];
?>
Compte le nombre d'éléments d'un tableau ou le nombre de propriétés d'un objet
PHP peut également vous permettre de distinguer les différentes valeurs de vos tableaux par des indices associatifs.
Ils sont constitués de chaînes de caractères.
Prenons cette fois l'exemple d'un article. On va le différencier par plusieurs choses :
<?php
$Article=array();
$Article['Numero']=77;
$Article['Nom']="Cable rond";
$Article['Prix']=7;
echo "Ref: ".$Article['Numero'] ." Article: " .$Article['Nom'] ." Prix: " .$Article['Prix'];
?>
<?php
// Autre syntaxe
$Articles=array('Numero' =>77,
'Nom' => "Cable rond",
'Prix' => 7);
echo "Ref: ".$Articles['Numero'] ." Article: " .$Articles['Nom'] ." Prix: " .$Articles['Prix'];
?>
Si on veut représente le tableau, ça donne ça !:
| France | Paris | 80 |
| Japon | Tokyo | 90 |
| UK | Londres | 70 |
<?php
$tab2=array();
$tab2[0][0]="France";
$tab2[0][1]="Paris";
$tab2[0][2]=80;
$tab2[1][0]="Japon";
$tab2[1][1]="Tokyo";
$tab2[1][2]=90;
$tab2[2][0]="UK";
$tab2[2][1]="Londres";
$tab2[2][2]=70;
for ($m=0;$m<count($tab2);$m++){
echo $tab2[1][$m];
}
?>
foreach se décline en deux versions
foreach($array as $value)
Ainsi, nous parcourons le tableau $array et la valeur de l'élément courant est copié dans $value, qui est ensuite affiché.
Contrairement au tableau précédant, les indices des éléments ne sont pas des nombres (0, 1, 2, ...) mais des chaînes de caractères (on appelle un tel tableau un tableau associatif). Ainsi, si je veux accéder au deuxième élément, je dois procéder comme suit: $array['deuxieme'] .
Il est donc impossible ici d'utiliser for, par contre, avec foreach, aucun problème
Exemple 1:
Exemple 2:
Vous remarquerez que l'on ne met pas les [ ] de $_SERVER!
Il vous permettra un jour d'afficher le contenu de $_POST, $_GET ou encore $_SESSION, ce qui peut parfois s'avérer très utile pour déceler un bug ou une valeur incorrecte dans un script.
On peut aussi imbriquer des boucles foreach, regardez on peut ainsi afficher le contenu d'un tableau à deux dimensions
Le premier foreach parcourt le tableau principal, les valeurs de $key sont successivement 'fruits', 'animaux' et 'pays' tandis que $value contient le tableau qui contient les exemples, c'est donc $value que l'on prend comme tableau pour le deuxième foreach
Exemple 4:
Exercice 2, boucle for et foreach
Permet d'inclure un fichier dans une page
Permet de même d'unclure un fichier dans une page
Il faut ajouter un point d'interrogation (?), le nom de la variable, un égal, puis sa valeur
?Nom_variable=valeur
Cela va créer une variable un peu particulière : $_GET['Prenom'] qui aura pour valeur titi
Et si vous voulez créer d'autres variables, il vous suffit de les séparer par des &.
Attention, dans votre code HTML, il ne faut pas écrire directement le symbole & (c'est interdit, même si ça "a l'air" de marcher).
Il faut remplacer les & par le code HTML correspondant, à savoir &
get/reception1.php?Prenom=titi&Nom=toto
Exercice:
Envoyer une variable prénom et nom avec GET via une url
La variable à récupérer s'écrira de cette façon
$_POST['Nom']
Envoyer des données sur 2 pages
Exercice 1:
Envoyer une variable nom et prénom avec POST via un formulaire
Envoyer des données sur la même page
Exercice 2:
Envoyer les variable Nom et Prenom sur une même page
Exercice 3
Calculer le prix pour une location
Exercice 4
| Nous sommes le 30/07/2010 | LC Formateur |