Bases du PHP
Pour chaque section de ce cours, vous trouverez une série de petits exercices, à réaliser dans un projet dédié (idéalement, versionnez-le !). Nous allons réaliser un mini-site de QCM, tout au long de ce cours.
Dans un premier temps, créez un dossier dans votre environnement de travail (exemple C:\wamp\www\exercices
) et créez un fichier index.php
dans ce dossier. Ajoutez-y une structure HTML classique dans laquelle nous allons travailler.
Fichier index.php
de départ :
<!doctype html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Exercices</title>
</head>
<body>
<h1>QCM</h1>
<form action="">
</form>
</body>
</html>
Un script PHP
En vidéo :
Les fichiers de PHP ont l'extension .php
et peuvent contenir du HTML aussi bien que du PHP. Un script PHP (que ce soit un fichier entier ou une portion de code) se trouve entre <?php
et ?>
.
Un exemple de Php dans un fichier HTML :
<html lang="fr">
<body>
<h1>Un fichier d'exemple</h1>
<p>Affichage de la date : <?php echo date('d/m/Y H:i:s'); ?></p>
</body>
</html>
Dans un fichier PHP seul :
<?php
echo '<p>';
echo date('d/m/Y H:i:s');
echo '</p>';
Commentaires
En vidéo :
Vous pouvez ajouter des éléments en commentaire : visible uniquement dans le code source, et non dans le rendu final. L'intérêt est de donner des informations supplémentaires aux autres développeurs (ou au "vous" du futur) sur ce que fait le code, prévenir de certains problèmes, etc.
// Une ligne de texte commenté, vous pouvez mettre n'importe quoi
/*
* Un commentaire multiligne
* (il DOIT commencé par /* et terminer par */)
*/
Variables
En vidéo :
Une variable sert à contenir une valeur. Le but de la variable est de nous permettre de manipuler cette valeur (opérations mathématiques, la transmettre plus loin dans le code, etc.)
// Ici on parle de déclaration (on définit le nom de la variable)
// et d'initialisation (on lui donne une valeur de départ)
$unNombre = 0;
// On peut modifier la valeur contenue dans notre variable de différentes manières,
// comme des opérations mathématiques, dont voici quelques raccourcis
$unNombre++; // $unNombre = $unNombre + 1;
$unNombre += 2; // $unNombre = $unNombre + 2;
$unNombre *= 3; // $unNombre = $unNombre * 3;
$unTexte = 'Un texte';
// L'opérateur . permet de concaténer 2 chaînes de caractères
$unTexte .= ' de test'; // $unTexte = $unTexte . ' de test';
Constantes
En vidéo :
Nous n'allons pratiquement pas nous servir de ces constantes dans ce cours, mais il est utile de savoir comment les utiliser (pour un site Wordpress, par exemple).
Une constante est toujours écrite en screaming snake case (tout en majuscule, les mots séparés par des _
). Comme une variable, une constante contient une valeur, mais qui ne peut pas être modifiée.
L'intérêt est de conserver en mémoire une valeur qui peut être utilisée à plusieurs endroits dans le code (nom d'éléments par page dans des listes, un texte répété à travers le site, etc.) et que l'on veut éviter de répéter.
// Déclaration et initialisation d'une constante
define("UNE_CONSTANTE", "et sa valeur");
// Utilisation de la valeur de la constante
echo UNE_CONSTANTE;
Types
En vidéo :
- integer
12
pour représenter les nombres (entiers) - float
25.45
pour représenter les nombres à virgule - string
'un texte'
ou"un texte"
pour représenter les textes - bool
true
oufalse
pour représenter les valeurs logiques (booléennes) - null
NULL
ounull
pour représenter une valeur vide - array
[1, 2, 3]
pour représenter des ensembles de données (en Php, les données sont quelconques, elles n'ont pas besoin d'être du même type) - Object
new PDO()
pour représenter des données plus complexes
Tableaux
La documentation PHP sur les tableaux
En PHP, les entrées des tableaux peuvent être de types différents
$monTableau = array(1, '2', 3.2, new Object());
$monTableau = [1, '2', 3.2, new Object()]; // La syntaxe courte, à préférer
Et il en va de même pour les clés
$mesProduits = [
0 => 'foo',
1 => 'bonnet en coton',
'uneEntrée' => 2,
];
Manipuler les tableaux
Accéder à une entrée
On utilise alors l'index correspondant à la ligne qu'on veut récupérer.
$mesProduits = [
0 => 'foo',
1 => 'bonnet en coton',
'uneEntrée' => 2,
];
$unProduit = $mesProduits[0];
$unAutreProduit = $mesProduits['uneEntrée'];
Ajouter une entrée
$mesProduits = [
0 => 'foo',
1 => 'bar',
'uneEntrée' => 2,
];
// On peut ajouter une entrée à un index précis
$mesProduits[2] = 'un texte de test';
// ou dire à PHP de gérer l'index (ici, le texte sera ajouté à l'index 2)
$mesProduits[] = 'un texte de test';
Note : le dernier exemple ci-dessus ($mesProduits[] = $value
) est équivalent à .push(value)
de Javascript. Un index numérique est calculé (PHP récupère le dernier index numérique, et l'incrémente pour avoir le nouvel index) et $value
est ajouté à cet index.
Modifier une entrée
$mesProduits = [
0 => 'foo',
1 => 'bar',
'uneEntrée' => 2,
];
// On modifie l'élément à l'index 0
$mesProduits[0] = 'no more foo';
Supprimer une entrée
$mesProduits = [
0 => 'foo',
1 => 'bar',
'uneEntrée' => 2,
];
unset($mesProduits[0]);
Fonctions utiles
$mesProduits = [
0 => 'foo',
'vide' => false,
1 => 'bar',
'uneEntrée' => 2,
];
// renvoie true si l'entrée existe
$test = isset($mesProduits[0]);// true
$test = isset($mesProduits[666]); // false
// renvoie true si l'entrée n'est pas définie ou est une valeur vide (0, '', null, [], false, etc.)
$test = empty($mesProduits[0]); // false
$test = empty($mesProduits['vide']); // true
// supprimer une entrée
unset($mesProduits[0]);
// compter le nombre d'éléments dans un tableau
$compte = count($mesProduits);