Cours de Rémi JarjatCours de Rémi Jarjat
  • Liste des cours
  • Culture numérique
  • Git
    • Terminologie
    • Avant de commencer
    • Créer un dépôt (local)
    • Enregistrer des changements
    • Des branches
    • Mise en commun du travail
    • Annuler des changements
    • Réécrire l'historique
    • Des outils pour se simplifier Git
    • Exercices
    • Exemples pratiques
  • Linux
    • Installation
    • Historique
    • Rangement des fichiers
    • Les processus
    • Commandes de base
    • Commandes avancées
    • /linux/6-other-technologies.html
    • Exercices
    • Correction des exercices
  • PHP
    • Environnement de travail
    • Bases du PHP
    • Tests et boucles
    • Procédures et fonctions
    • Interagir avec l'utilisateur
    • La temporisation de sortie
    • PHP Doc et PSR
    • PHP Orienté objet
    • Héritage et objets
    • Factorisation
    • Manipuler la BdD avec PDO (PHP Data Object)
    • Architecture MVC
    • Webservices REST
    • Exercices - Bases
    • Exercices - Séparer en plusieurs fichiers
    • Exercices - POST et SESSION
    • Exercices - Panier et validation
    • Exercices - Objets
    • Exercices - BdD avec PDO
    • Projet - montage d'ordinateurs
    • Projet - Personnages de Jeux de Rôle
  • Symfony
    • Installer Symfony et son environnement de travail
    • Structure et utilisation d'un projet
    • Le routing
    • Les controllers
    • Twig
    • Les services et l'injection de dépendances
    • Doctrine et la BdD
    • Formulaires
    • Les traductions
    • Event listeners/subscribers
    • Connexion et sécurisation
    • Bundles
    • Easy Admin Bundle
    • API Platform
    • Pense-bêtes
    • Symfony au quotidien
    • Travailler avec Docker
    • Projet : annonces de SPA / éleveurs
    • Exercices
  • Javascript
    • Les bases du langage
    • Manipulation logique
    • Le DOM
    • JQuery
    • Ajax
    • Programmation orientée objet
    • Webpack
    • Outils utiles
    • Révisions
  • Serveur Lamp
  • Déploiement
    • Des outils et manières de faire
    • Déploiement par FTP
    • Wordpress
    • Intégrer Git dans le processus
    • GitHub Pages pour déployer facilement
    • Symfony et Angular
  • Docker
  • Intégration continue
  • Sécurité informatique

Bases du PHP

  • Un script PHP
  • Commentaires
  • Variables
  • Constantes
  • Types
    • Tableaux
    • Manipuler les tableaux

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

La documentation PHP

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

La documentation PHP

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

La documentation PHP

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 ou false pour représenter les valeurs logiques (booléennes)
  • null NULL ou null 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); 
Dernières mise à jour :
Prev
Environnement de travail
Next
Tests et boucles