Syntaxe
Commentaires
Comme dans tout langage, les commentaires permettent de préciser le sens du code utilisé et donc sa compréhension.
- Ligne
-
// Commentaire
- En fin de ligne
-
$x += 10; // Incrémente $x de 10
- Multi lignes
/*Commentaire sur plusieurs lignes. */
Instructions
Toutes les instructions se terminent par ;
les retours à la ligne n'ont pas d'importance.
Variables
Ce sont les éléments permettant de stocker et de manipuler des données tout au long de l'exécution du programme.
Syntaxe
Les variables sont préfixées par le caractère $
. Elles répondent aux critères de nommage
suivants :
- Premier caractère alphabétique ou _
- Pour les caractères suivants : a-z,A-Z,0-9,_
- Pas d'espace
- Sensible à la casse
Exemples
- Chaîne de caractères
-
$chaine = "Caractères";
- Nombres
-
$entier = 1.5;
Manipulations
- Test d'existence d'une variable
-
isset($var)
- Renvoie
TRUE
si la variable contient une valeur (y compris une chaîne de caracètres vide),FALSE
sinon. - Destruction
-
unset($var)
- La variable en paramètre n'existe plus après cet instruction, sa valeur est perdue.
Variables dynamiques
Le nom d'une variable peut lui même être une variable :
$dvd = "30"; $produit = "dvd"; echo $$produit; /* On obtient 30 car $produit a été interprêté à l'intérieur de $$produit et donc faire l'appel à $dvd */
Chaînes de caractères
Les chaînes de caractères sont généralement encadrées par des guillemets.
Concaténation
L'opérateur .
utilisé dans un contexte de chaîne de caractères permet de concaténer des
contenus.
$count = 5; echo "Il y a " . $count . " résultats."; //Il y a 5 résultats
Interprétation des variables
Les variables sont automatiquement interprêtées et leur contenu est substitué dans la chaîne de caractères.
$count = 5; echo "Il y a $count résultats"; //Il y a 5 résultats
Pour des types complexes (comme par exemple des objet ou des tableaux), l'appel est délimité par des accolades.
$tableau['index'] = 5; echo "Il y a {tableau['index']}résultats"; //Il y a 5 résultats
Echappement
Le caractère \
permet d'échapper les caractères.
$text = 'C\'est un exemple'; $text = "Citation : \"Waouh\""; $text = "J'utilise la variable \$text";
Typage
PHP n'impose pas de déclarer les varaibles avant de les utiliser. Le type d'une variable est déterminé par la valeur qui lui est affectée.
PHP gère en interne quatre types de données simples : des entiers, des flottants, des chaînes de caractères et des booléens.
PHP effectue des conversions de type en fonction du contexte d'utilisation de la donnée.
- Conversion
$number = 12345 * 67890; echo substr($number, 3, 1);
- Conversion
$pi = "3.1415927"; $rayon = 2;
echo $pi * (rayon * rayon);- Tests
gettype()
: détermine le typeis_long()
: teste s'il s'agit d'un flottantis_bool()
: teste s'il s'agit d'un booléenis_array()
: teste s'il s'agit d'un tableau- ...
Tableaux
Les tableaux sont un type complexe de données permettant de regrouper des données.
L'instruction array()
permet de créer un tableau.
Tableaux à index numérique
Ce sont des liste d'éléments dont la position dans le tableau constitue l'index. On appelle un élément en
utilisant son index entre les caractères []
$etudiants = array('Bill', 'Bob', 'Joe', 'Jim'); echo $etudiants[3]; // Jim car l'index commence à 0
De la même manière, on peut écrire directement dans le tableau :
$etudiants[3] = 'Kelly'
Ou encore ajouter un élément à la suite du tabelau existant :
$etudiants[] = 'Tom'
Tableaux multi dimensionnels
Ce sont des "tableaux de tableaux", utilisés par exemple pour les matrices. On utilisera autant d'indices que de dimensions.
$matrice = array(array(1, 2, 3), array(4, 5, 6), array(7, 8, 9)); echo $matrice[1][2]; // 6
Tableaux associatifs
Les indexes ne sont pas numériques mais textuels. Il faut donc associer explicitement les clés et les valeurs
à l'aide de l'opérateur =>
. On accède directement à un élément en utilisant la clé associée.
$tableau = array("prenom" => "John", "nom" => "Smith"); echo $tableau['nom']; // Smith
Opérateurs
Arithmétiques
Il s'agit des opérateurs mathématiques usuels.
- Addition :
+
- Soustraction :
-
- Division :
/
- Multiplication :
*
- Modulo :
%
- Il s'agit du reste de la division entière
-
$var = 20%3; // modulo : 2
Incrémentations
Ce sont les raccourcis de syntaxe permettant d'ajouter ou de retrancher 1.
$var++; // $var = $var + 1
$var--; // $var = $var - 1
La position de l'opérateur détermine l'ordre des opérations.
$var++
: évaluée puis incrémentée++$var
: incrémentée puis évaluée
Assignations
L'opérateur d'affection est =
. Il indique que la variable à gauche doit prendre spécifiée à
droite
Opérateurs combinés
On utilise simultanément l'opérateur d'affectation et un opérateur arithmétique.
- Addition :
+=
- Soustraction :
-=
- Division :
/=
- Multiplication :
*=
- Modulo :
%=
On obtient donc des syntaxes équivalentes comme par exemple :
-
$a += 5;
-
$a = $a +5;
Comparaisons
Comparent les deux termes et renvoient un booléen.
==
- Egalité des deux valeurs (le type peut être différent, PHP effectue des conversions automatiquement)
<
- Inférieur à
>
- Supérieur
<=
- Inférieur ou égal
>=
- Supérieur ou égal
!=
- Différent de
===
- Egalité de valeur ET de type
!==
- Différence de valeur OU de type
Exemples :
1 == '1'; // test même valeur donc vrai
1 === '1'; // test même valeur, même type donc faux
1 !== '1'; // test valeur différente ou type différent, vrai
Logiques
Les opérateurs logiques permettent de combiner des résultats de tests selon l'algèbre de Boole.
!
- Négation : renvoie l'opposé booléen de la valeur
&&
ouAND
- ET logique : vrai si les deux membres sont vrais
||
ouOR
- OU logique : vrai si l'un des membres est vrai
XOR
- OU exclusif logique : vrai si l'un des membres uniquement est vrai
Constantes
Les constantes sont définies grâce à la fonction define()
. Leur valeur ne peu plus être modifiée
par la suite.
Par convention, leur nom est composé de majuscules.
Utilisation
define("UDS", "http://www.unistra.fr") $adresse = UDS;
Pré-définies
PHP met à disposition plusieurs variables comme par exemple :
__LINE__
- numéro de ligne
__FILE__
- chemin complet
__DIR__
- répertoire
__FUNCTION__
- nom de la fonction
__CLASS__
- nom de la classe
__METHOD__
- nom de la méthode de classe
__NAMESPACE__
- espace de nommage