On va retrouver beaucoup de similitudes pour les instructions de base des langages PHP et Javascript.
Le PHP
PHP (Pre Hypertext Processor), est un langage de script exécuté par le serveur Web qui héberge le site et non par la navigateur du visiteur (comme une page Html ou un script JavaScript qui s'exécutent directement sur votre ordinateur...).
Ce langage de programmation permet d'ajouter des fonctionnalités à ses pages web, de faire des "pages dynamiques".
A la différence du JavaScript, dont les instructions s'effectuent directement par l'intermédiaire du navigateur, les instructions php ne peuvent être effectuées qu'avec un serveur :
serveur du Fournisseur d'Accès Internet* ou de l'Hébergeur du site, lorsque le site est en ligne,
serveur (Apache ou XAMPP) installé sur l'ordinateur pour tester les pages.
Les avantages du PHP
langage trés répandu pour le développement des sites Web,
langage trés robuste et trés complet au niveau des fonctionnalités,
logiciel libre,
s'installe comme un module du serveur Web Apache ou pour Microsoft IIS, et sur un grand nombre de plateformes différentes,
permet la connexion à un grand nombre de bases de données.
Eléments de base du langage
Inclure du code PHP dans des pages HTML
Le code PHP fait partie intégrante des pages HTML. C'est l'interpréteur PHP intégré dans le serveur Web qui reconnaît les parties de la page qui contiennent du code PHP. Il interprète (exécute) ces parties, puis insère le résultat dans la page HTML qui est envoyée du serveur vers le navigateur. Le navigateur du client ne voit jamais le code PHP, il voit seulement le résultat de l'exécution de ce code.
La page HTML complète sur le serveur
La page renvoyée par le serveur
Interprétation du code
Un code PHP (délimité par <?php et ?> consiste en un ensemble d'instructions se terminant obligatoirement par un point virgule.
Les espaces, tabulations, retour à la ligne sont permis et même souhaitables pour une meilleure lisibilité mais ils ne sont pas pris en compte par le serveur.
Il peut avoir plusieurs inclusions de code PHP dans une même page Web.
Attention : Pour que le code PHP soit exécuté, il faut tout d’abord que le fichier soit enregistré avec l’extension « .php » et non pas l’extension « .html » ou « .htm ».
Les commentaires
Afin de rendre le code encore plus compréhensible, il est bon d'ajouter des commentaires qui seront des chaines de caractères non interprétée par le serveur.
Une autre façon de délimiter un commentaire est de le faire précéder par // ou #. Dans ce cas tout ce qui se trouve à gauche de ces délimiteurs, et sur la même ligne sera considéré comme un commentaire.
Ecriture du code
Le code PHP peut être écrit dans un format libre :
la présentation du code n'a pas d'importance,
plusieurs instructions peuvent être écrites sur une même ligne,
Toutefois il est fortement recommandé de privilégier une mise en forme priviligiant la lisibilité.
Méthode d'envoi des données au navigateur
PHP fournit 3 fonctions permettant d'envoyer du texte au navigateur. Ces fonctions ont la particularité de pouvoir insérer dans les données envoyées des valeurs variables, pouvant être fonction d'une valeur récupérée par exemple, c'est ce qui rend possible la création de pages dynamiques.
echo
La "fonction" echo permet d'envoyer au navigateur l'expression qui la suit : L'expression peut être une chaîne de caractères ou une expression que l'interpréteur peut évaluer.
Differences entre simple et double quotes
Les quotes simples permettent d'imprimer le nom de la variable et non pas sa valeur.
Codes
Résultats
Les roses sont rouges Les roses sont $color L'échappement de caractères : Les roses sont "rouges".
Envoi d'une chaine de caractères ($str)
Codes
Résultats
Bonjour!
Envoi d'une chaine de caractères ($str) , incluant des tags HTML
Codes
Résultats
Bonjour! Comment allez vous?!
Envoi d'une chaine composée de deux chaines
Codes
Résultats
Bonjour! Quelle belle journée!
Envoi de valeurs d'un tableau
Codes
Résultats
Jean est âgé de 35 ans
Envoi de multiples paramètres
Codes
Résultats
Cette chaîne est constituée de multiples paramètres.
Raccourci d'écriture(<?= )
Codes
Résultats
Les roses sont rouges
print()
La plus grosse différence avec echo est que print n'accepte qu'un seul argument et retourne toujours 1.
Les variables
Variables scalaires
Généralités
Une variable de type scalaire est un nombre ou une chaîne de caractères par opposition aux objets.
les variables scalaires stockent une valeur unique,
les variables scalaires peuvent contenir un grand nombre de types différents de données :
entier,
nombre à virgule flottante,
chaine de caractères,
booléen (vrai/faux),
référence,
objet.
PHP est typé dynamiquement,
une variable scalaire peut contenir n'importe quel type,
une variable scalaire peut contenir différents types de données dans diverses parties du programme.
PHP est faiblement typé. Si besoin il convertit les données d'un type à l'autre : chaîne en nombre, nombre en chaîne, etc..
Le nom d'une variable scalaire est préfixé par $
Le nom d'une variable scalaire est sensible à la casse.
Exemples de déclarations
Commentaires
$a =12;
entier
$A =45;
une autre variable de type entier elle aussi.
$x =1.245;
valeur en virgule flottante.
$etat =True;
booléen.
$state =False;
booléen. Note(1)
$state ='coucou';
la variable précédente qui était un booléen est maintenant devenue une chaîne de caractères.
Note(1) : PHP considère que certaines valeurs sont "vraies" (true) ou "fausses" (false). Ainsi une variable est considérée comme FALSE si :
elle contient la valeur booléenne FALSE
elle contient la valeur entière 0
elle contient la valeur décimale 0.0
elle contient une chaîne vide
elle contient la chaîne '0'
c'est un tableau sans élément
elle n'a pas reçu de valeur auparavant dans le script
Toutes les autres valeurs sont évalués comme TRUE
Opérations arithmétiques standards
Tous les opérateurs arithmétiques sont supportés et les priorités des opérateurs sont similaires à celles des autres langages.
Exemples de déclarations
Commentaires
$var1 =1; $var2 =5; $var3 =10;
entier
$res = $var1 + $var2;
addition.
$res = $var1 - $var2;
soustraction.
$res = $var1 * $var2;
multiplication.
$res = $var1 / $var2;
division.
$res = $var1 % $var2;
modulo (reste de la division).
$res = $var1 + $var2 * $var3;
51 (à cause des priorités).
$res = ($var1 + $var2) * $var3;
60.
Définitions des noms
Un nom de variable php doit commencer uniquement par une lettre (majuscule ou minuscule) ou le caractère '_'.
Un nom de variable peut contenir des lettres (majuscule ou minuscule), des chiffres, le caractère '_'.
Les espaces ne sont pas autorisés.
Hormis ces contraintes les déclarations de variables se rapprochent beaucoup du javascript.
Portée des variables
Une variable déclarée en d'hors de toute fonction ou classe à une portée globale.
Une variable déclarée à l'intérieur d'une fonction ou classe à une portée limitée à la fonction ou à la classe.
Une fonction peut accéder à une variable globale grace au mot clé global. Voir détail ci-dessous.
Une variable à l'intérieur d'une fonction peut être conservée même lorsque la fonction a été complètement exécutée et que toutes les autres données ont été effacées grace au mot clé static. Voir détail ci-dessous.
Quelques spécificités utiles à connaitre
Les variables global
Les variables static
Une variable statique a une portée locale uniquement, mais ne perd pas sa valeur lorsqu'un script appelle une fonction dans laquelle cette variable est définie.
Normalement, lorsqu'une fonction est exécutée puis terminée, toutes ses variables supprimées. Cependant, quelquefois il est pratique de conserver une ou plusieurs variables car nous en aurons besoin lors d'un prochain appel à cette fonction.
Déclarations
Commentaires
Les chaînes de caractères
Déterminer la longeur d'une chaîne
int strlen ( $MaChaine ) => Retourne la taille de la chaîne $MaChaine.
Interpolation de chaînes
Définition
Action d'interpoler, d'introduire dans un texte un élément qui n'était pas dans l'original .
Les chaînes entre guillemets (doubles quotes) sont interpolées
tout nom de variable est remplacé par la valeur de la variable.
si la variable n'existe pas, son nom est remplacé par une chaîne vide.
Les chaînes entre apostrophes (simple quotes) ne sont pas interpolées.
Pour annuler la signification particulière d'un symbole (par exemple un $ dans une chaîne interpolée) il faut le faire précéder d'un \
Exemple
Exemples de déclarations
résultats
$a='Le monde';
$b="Bonjour $a";
Bonjour Le monde
$c='Bonjour $a';
Bonjour $a
$d="Bonjour $z";
Bonjour
$e='Bonjour \$a';
Bonjour $a
Concaténation
Les chaînes peuvent être concaténées (jointes) avec l'opérateur "point".
Afficher des valeurs
PHP offre plusieurs moyens pour afficher la valeur des variables
La fonction la plus utilisée est echo
De la même manière on peut utiliser la fonction print
Quelques fonctions chaîne utiles
Fonctions
Commentaires
$str = chop($MaChaine)
Supprime les caractères "blancs" de fin de chaîne.
$array = explode(delimiteur,$MaChaine)
Découpe une chaine en utilisant le(s) caractère(s) délimiteur. Retoune les sections dans un tableau.
$str = implode(delimiteur,$MonTableau)
Fusionne dans une chaîne les éléments de $MonTableau, en utilisant le(s) caractère(s) de delimiteur comme séparateur.
$str = nl2br($MaChaine)
Convertit tous les caractères de fin de ligne de $MaChaine en balises <br>
$str = strip_tags($MaChaine, [$allowable_tags ])
Supprime toutes les balises entre chevrons de $MaChaine. $allowable_tags est un paramètre (chaîne) optionnel utilisé pour spécifier les balises qui ne doivent pas être supprimées.
$str = str_replace($Cherche,$Remplace,$MaChaine)
Remplace toutes les occurences de $Cherche par $Remplace dans $MaChaine.
$newstr = strrev($MaChaine)
Retourne $MaChaine inversé.
Les opérateurs
De comparaison
Exemples de déclarations
résultats
$a== $b;
$a est égal à $b
$a === $b;
$a est égal à $b avec même valeur et même type
$a != $b, $a <> $b;
$a n'est pas égal à $b
$a < $b;
$a est inférieur à $b
$a <= $b;
$a est inférieur ou égal à $b
$a > $b;
$a est supérieur à $b
$a >= $b;
$a est supérieur ou égal à $b
Logique
Exemples de déclarations
Sens
résultats
$a && $b;
et
Vrai si $a est vrai et $b est vrai
$a || $b;
ou
Vrai si $a est vrai ou $b est vrai
!$a;
non
Vrai si $a est faux
$a and $b;
et
Vrai si $a est vrai et $b est vrai
$a or $b;
Vrai si $a est vrai ou $b est vrai
$a xor $b;
ou exclusif
Vrai si $a est vrai ou $b est vrai, mais pas si si les deux
Exemple
Les tableaux
Généralités
Un tableau est une liste de valeurs dans une seule variable. Les noms de tableaux sont comme les variables préfixés par un $
Initialiser et étendre les tableaux
On peut initialiser un tableau en utilisant la fonction interne array
Un tableau peut être étendue de la façon suivante :
Tableaux associatifs
L'indice d'un tableau peut être une chaîne que l'on appelle clé. Les tableaux avec des couples clé/valeur sont appelés comme en javascript des tableaux associatifs.
Méthodes pour trier des tableaux
Utilisation de la méthode array_multisort
Exemple tableaux multi-lignes et multi-colonnes
Manipulation des tableaux
fonctions
Commentaires
$val = count($MonTableau)
Retourne le nombre d'éléments dans $MonTableau
in_array($MaValeur,$MonTableau)
Retourne true ou false, selon que la valeur $MaValeur est présente ou non dans le tableau $MonTableau
sort($MonTableau)
Tri les éléments du tableau du plus petit au plus grand.
La valeur de l'élément est 10 La valeur de l'élément est 20 La valeur de l'élément est 30 La valeur de l'élément est 40 La valeur de l'élément est 50 La valeur de l'élément est toto
Pour un tableau associatif
Codes
Résultats
$k
$v
$n
$m
Lundi
Docteur
Mardi
Array
Tennis
Balles
Mardi
Array
Foot
Ballons
Mardi
Array
Squash
Raquettes
Mercredi
Visite
Jeudi
Réunion
Vendredi
Dentiste
Jours du mois
Saints du jour
Dictons du jour
1er Janvier
Jour de l'An
Année neigeuse, année fructueuse.
2 Janvier
St Basile
Au mois de janvier, mieux vaut voir le loup dans les champs, qu'un homme en chemise.
3 Janvier
Ste Geneviève
Beaux jours de janvier trompent l'homme en Février.
4 Janvier
St Odilon
Brouillard en janvier, année ensoleillée.
5 Janvier
St Edouard
Brouillard en janvier, année mouillée.
6 Janvier
Ste Mélaine
Brouillard en janvier, froid en mai.
while
Identique à javascript
Structure générale
while (test) {
// Instructions à exécuter tant que le test est vrai
}
Exemple
Les fonctions
Fonctions définies par l'utilisateur
Les constructions des fonctions utilisateur en PHP sont similaires à celles du Javascript. On peut se reporter à la fiche Javascript : Variables, opérateurs, boucles, fonctions
Les fonctions peuvent être définies n'importe ou dans le code. Habituellement elles sont placées en début du fichier, mais ce n'est pas indispensable.
Une fois définie, une fonction peur être appellée de n'importe quel endroit dans le code.
Comme pour les noms de variables, les noms de fonctions sont sensibles à la casse.
Les erreurs dans la logique du programme peuvent causer des messages d'erreurs, mais attention, il peut arriver que aucune erreur n'apparaisse mais la page affiche tout de même des données incorrectes.