# PHP/Version imprimable

* Si vous imprimez cette page, choisissez « Aperçu avant impression » dans votre navigateur, ou cliquez sur le lien Version imprimable dans la boîte à outils, vous verrez cette page sans ce message, ni éléments de navigation sur la gauche ou en haut.
* Cliquez sur Rafraîchir cette page pour obtenir la dernière version du cours.
* Pour plus d'informations sur les version imprimables, y compris la manière d'obtenir une version PDF, vous pouvez lire l’article Versions imprimables.
Une version à jour et éditable de ce livre est disponible sur la Wikiversité, une bibliothèque de livres pédagogiques, à l'URL : http://fr.wikiversity.org/wiki/PHP

# Premier script
## Commentaires

Un commentaire est une portion de code qui n’est pas exécuté par PHP.
PHP supporte deux types de commentaires :
* Les commentaires sur une seule ligne : ils sont délimités par // ou # et la fin de la ligne
* Les commentaires sur plusieurs lignes, délimités par /* et */
PHP ne traitera que la partie echo('Bonjour'); car le reste est commenté.
Les commentaires sont indispensables dans un script. Ils permettent de documenter le code afin d’en améliorer sa lisibilité et d’en faciliter la maintenance. De plus, ils permettent de tester des parties de script en en occultant d'autres.

## Le script

Le PHP est conçu pour s'intégrer facilement dans vos pages HTML. Voici un exemple de programme très simple servant à afficher "Bonjour !" sur la page.
* Script PHP Basique - Bonjour !
* Mon premier script en PHP
* <?php
* // La fonction 'echo' permet d'afficher un texte à l'écran
* echo 'Bonjour !';
Voici quelques explications sur ce script. Pour définir un script PHP parmi une page HTML, on doit entourer le code par les balises suivantes :
* Les balises <?php et ?> encadre toujours un code PHP
* <?php
* //Ici le script php
Il y a aussi des équivalents désuet comme :
* Code désuet
* //Encore un autre script php
Ou alors :
* Code désuet
* <script language="php">
* // script php
* </script>
Les deux dernières syntaxes sont déconseillées, il est préférable d’utiliser la première syntaxe : en fonction de la configuration du serveur web qui lira votre page PHP, ces balises peuvent ne pas être reconnues, ou être mal interprétées.
Quant à la fonction echo, elle permet d'écrire du texte dans le fichier HTML qui sera envoyé au navigateur. Ce code écrit dans le fichier HTML peut être du texte normal, du code HTML, JavaScript, ou tout autre code compréhensible par un navigateur web.
Il est aussi possible de mélanger plusieurs parties PHP avec plusieurs parties HTML comme l'exemple ci-dessous :
| Sommaire | Syntaxe du langage |

# Syntaxe du langage
## Séparateur d'instruction

Un script PHP est une suite d'instructions ordonnant à l'ordinateur d'effectuer certaines opérations. Comme dans la plupart des langages informatiques (C, Java, Perl…), chaque instruction doit être terminée par un point-virgule. Ce dernier permet de délimiter les instructions qui seront exécutées par le serveur PHP.
L'oubli d’un point-virgule déclenchera une erreur ou un fonctionnement incorrect du script. Il est donc indispensable d’être vigilant.
Il est à noter que la balise fermante ?> joue le rôle de point-virgule. Le point virgule de la dernière instruction est, par conséquent, optionnel, mais fortement recommandé. C’est plus clair, et il vaut mieux prendre dès le début l'habitude de terminer ses instructions par un point-virgule.

## Affichages

Il y a deux façons d'afficher du texte à partir de PHP, avec les commandes echo et print.
De plus, s'ils renvoient le résultat Array, cela signifie que la variable à afficher est un tableau et qu’il faudrait utiliser print_r pour montrer son contenu (ou var_dump).

## Versions de PHP

Il existe plusieurs versions du langage, selon les logiciels installés, certaines commandes ne fonctionneront donc pas forcément.
Ces deux codes afficheront exactement la même chose.

## Variables

Les variables sont un élément indispensable à tout langage de programmation. C’est grâce à elles que vous pourrez sauvegarder des données entre chaque instruction. En PHP, chaque variable commence par un dollar ($), et les variables d'environnements par $_ (ex : $_SESSION, $_GET, $_POST... voir les chapitres suivants). Comme PHP n’est pas typé (sauf cas très particulier en PHP5), vous pouvez affecter vos variables de la manière qu’il vous plaît avec des chaînes, des entiers… De plus, une variable n'a pas besoin d’être déclarée pour être utilisée : vous pouvez directement l'affecter avec le signe =.
Plus fort, si vous incrémentez une variable qui n'existe pas encore (cf ci-dessous) en faisant $variable++;, alors $variable prendra la valeur 1. PHP l'a implicitement initialisé à 0.
Les variables ne sont pas conservées entre les pages. Une fois votre script terminé, toutes les variables créées seront détruites. Il sera donc nécessaire des les sauvegarder en utilisant, par exemple, le mécanisme des sessions PHP.
Les noms de variables ne peuvent pas contenir n’importe quel caractère. Pour être valides, elles doivent commencer par une lettre (majuscules/minuscules), suivi de lettres capitales ou pas, chiffres ou autres underscores (ex : $MaVariable1, $ma_variable1...).
La portée des constantes leur permet d’être utilisées dans les méthodes de classes, alors que les variables doivent y être déprotégées par le mot global, ex :

## Opérateurs

Le langage PHP définit naturellement une liste d'opérateurs, permettant d'effectuer en ensemble d'opération simple. Voici la liste :

### Opérateur binaire d'affectation

Comme vu ci-dessus, il s'agit du signe égal : "=", utilisable tant avec les nombre qu'avec les chaînes.

### Opérateurs binaires de calcul

* l'addition est réalisée avec le symbole "+".
* la soustraction est réalisée avec le symbole "-".
* la multiplication est réalisée avec le symbole "*".
* la division est réalisée avec le symbole "/".
Veuillez noter qu’il existe un raccourci pour ces quatre opérateurs : +=, -=, *=, /=, qui s'utilise lorsque l’on veut effectuer une opération sur une variable. La formule de base est :
var = var opérateur variable|valeur devient var opérateur= variable|valeur.
L'opération réalisée est la même, mais un petit exemple devrait vous éclairer :

#### Dates

Pour manipuler des dates, il existe la classe DateTime, également appelée add_date :
Le langage PHP ne peut afficher les noms des jours et des mois qu'en anglais par défaut. Il convient donc de créer des tableaux pour les obtenir en français :

### Opérateurs de comparaisons

Ceux-ci fonctionnent de gauche à droite : valeur comparé symbole valeur comparante. Ils retournent un booléen qui vaut vrai si la condition testée est juste, faux sinon.
Voici la liste des opérateurs possibles:
* > : est supérieur à
* < : est inférieur à
* >= : est supérieur ou égal à
* <= : est inférieur ou égal à
* == : est strictement égal à
* === : est strictement égal à et est de même type (Boolean, Entier, String, Objets…)
Note: Vous ferez toujours très attention à ne pas confondre les symboles "=" et "==". C’est une erreur courante de débutant.

### Concaténation

La concaténation revient à "coller" deux chaînes de caractère entre elles. L'opérateur utilisé est le ".".
Notez bien qu'en PHP, presque tout peut être concaténer.
* En anglais les nombres décimaux sont séparés par des points, ces derniers ne concatènent donc pas les chiffres. Par exemple 1.5 signifie 1,5, et "1"."5" égal 15.

### Troncature

Pour tronquer une chaine (le contraire de la concaténation), il existe la fonction substr. Le premier paramètre est obligatoire et représente la position de début de la chaine à extraire, le second représente la taille de la chaine s'il est positif, ou la position de fin s'il est négatif.

### Opérateurs unaires

* Le signe ! correspond à l'inverse (ainsi en valeur booléen, vrai devient faux et vice-versa).
On peut coupler ce symbole à ceux précédent pour inverser le résultat d’une comparaison:
Dans le code ci-dessus, l'opérateur ">" renverra la valeur false car 25 n’est pas supérieur à 26. Cependant, l'opérateur unaire "!" renverra à son tour l'opposé, soit true.

### Opérateurs d'incrémentations

Apparus en C, ces opérateurs ont été repris en PHP. l'opérateur ++ signifie "ajouter 1" et l'opérateur -- signifie "retrancher 1".
CF en fin de chapitre pour la différence entre pre et post-incrementation.

### Opérateur de contrôle d'erreur

@ permet d'ignorer certaines erreurs bloquantes. Par exemple le fichier suivant n'affichera pas ce qui survient si on retire l'arobase, et qui pourrait sembler disgracieux à la vue des utilisateurs : Warning: Division by zero in test.php on line 2.

### Priorité entre les opérateurs

Le PHP n'interprète pas une suite d'opérateurs linéairement, de gauche à droite. Il le fait en fonction de la priorité liée à chaque opérateur utilisé (comme en maths où la multiplication prime sur l'addition). Voici la hiérarchie des principaux opérateurs, des plus prioritaires jusqu'au moins prioritaires :
* ++ et --
* * et /
* + et -
* <, >, <=, >= et <>
* ==, !=, === et !==
Si deux signes de mêmes priorités sont utilisés, alors le PHP les traite de gauche à droite.
On peut cependant modifier la priorité des termes grâce aux parenthèses. Une opération entre parenthèses sera effectuée en priorité, quel que soit son opérateur, et si elles sont imbriquées, on calcule en premier la plus petite.
Exemple d’utilisation des priorités :