PHP/Syntaxe du langage

Leçons de niveau 14
Une page de Wikiversité, la communauté pédagogique libre.
< PHP
Début de la boite de navigation du chapitre
Syntaxe du langage
Icône de la faculté
Chapitre no 2
Leçon : PHP
Chap. préc. :Premier script
Chap. suiv. :Structures de contrôle
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « PHP : Syntaxe du langage
PHP/Syntaxe du langage
 », n'a pu être restituée correctement ci-dessus.

Séparateur d'instruction[modifier | modifier le wikicode]

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[modifier | modifier le wikicode]

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[modifier | modifier le wikicode]

Il existe plusieurs versions du langage, selon les logiciels installés, certaines commandes ne fonctionneront donc pas forcément.

Début d’un principe
Fin du principe


Ces deux codes afficheront exactement la même chose.

Variables[modifier | modifier le wikicode]

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.

Début d’un principe
Fin du principe


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 :

 global $var;

Opérateurs[modifier | modifier le wikicode]

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[modifier | modifier le wikicode]

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

Début d’un principe
Fin du principe


Opérateurs binaires de calcul[modifier | modifier le wikicode]

  • 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 "/".
Début de l'exemple
Fin de l'exemple


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 :

Début de l'exemple
Fin de l'exemple


Dates[modifier | modifier le wikicode]

Pour manipuler des dates, il existe la classe DateTime()[1], également appelée add_date()[2] :

<?php
  print 'Nous sommes le ' .  date("l d-m-Y") . '<br />';
  
  $DateFuture1 = new DateTime(date("Y-m-d"));
  $DateFuture1->add(new DateInterval('P1D'));
  print 'Demain, nous serons le ' . $DateFuture1->format('l d-m-Y') . '<br />';

  $DateFuture2 = new DateTime(date("Y-m-d"));
  $DateFuture2->add(new DateInterval('P1M'));
  print 'Dans un mois, nous serons le ' . $DateFuture2->format('l d-m-Y') . '<br />';
  
  $DatePassee1 = new DateTime(date("Y-m-d"));
  $DatePassee1->sub(new DateInterval('P1D'));
  print 'Hier, nous étions le ' . $DatePassee1->format('l d-m-Y') . '<br />';

  $DatePassee2 = new DateTime(date("Y-m-d"));
  $DatePassee2->sub(new DateInterval('P1M'));
  print 'Il y a un mois, nous étions le ' . $DatePassee2->format('l d-m-Y') . '<br />';
?>

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[3] :

<?php
 $jours = array('', 'dimanche','lundi','mardi','mercredi','jeudi','vendredi','samedi');
 $mois = array('', 'janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre');
 $datefr = $jours[date('w')].' '.date('d').' '.$mois[date('n')].' '.date('Y');
 echo 'Nous sommes le '. $datefr; exit;
?>

Opérateurs de comparaisons[modifier | modifier le wikicode]

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…)
Début de l'exemple
Fin de l'exemple


Note: Vous ferez toujours très attention à ne pas confondre les symboles "=" et "==". C’est une erreur courante de débutant.

Concaténation[modifier | modifier le wikicode]

La concaténation revient à "coller" deux chaînes de caractère entre elles. L'opérateur utilisé est le ".".

Début de l'exemple
Fin de l'exemple


Notez bien qu'en PHP, presque tout peut être concaténer.

Panneau d’avertissement 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[modifier | modifier le wikicode]

Pour tronquer une chaine (le contraire de la concaténation), il existe la fonction substr()[4]. 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.

Début de l'exemple
Fin de l'exemple


Opérateurs unaires[modifier | modifier le wikicode]

  • 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:

Début d’un principe
Fin du principe


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[modifier | modifier le wikicode]

Apparus en C, ces opérateurs ont été repris en PHP. l'opérateur ++ signifie "ajouter 1" et l'opérateur -- signifie "retrancher 1".

Début d’un principe
Fin du principe


CF en fin de chapitre pour la différence entre pre et post-incrementation.

Opérateur de contrôle d'erreur[modifier | modifier le wikicode]

@ permet d'ignorer certaines erreurs bloquantes[5]. 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.

@$operation = 1/0;
print $operation;
print '<br />Fin';

Priorité entre les opérateurs[modifier | modifier le wikicode]

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 :

Début de l'exemple
Fin de l'exemple


Références[modifier | modifier le wikicode]

  1. http://php.net/manual/fr/datetime.add.php
  2. http://www.php.net/manual/fr/function.date-add.php
  3. http://www.commentcamarche.net/forum/affich-781989-php-comment-mettre-la-date-en-francais
  4. http://php.net/manual/fr/function.substr.php
  5. http://php.net/manual/fr/language.operators.errorcontrol.php