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

Tests et boucles

  • Conditions
    • Condition ternaire
    • Opérateur de fusion Null
    • Opérateurs courants
  • Boucles
    • foreach
    • for et while

La documentation PHP

En vidéo :

Conditions

$variable = 1;

if ($variable == 0) {
    echo 'ok';
} elseif ($variable == -1) {
    echo 'ok aussi';
} else {
    echo 'pourquoi pas ?';
}

Equivalent à :

$variable = 1;

switch ($variable) {
    case 0:
        echo 'ok';
        break;
    case -1:
        echo 'ok aussi';
        break;
    default:
        echo 'pourquoi pas ?';
        break;
}

Condition ternaire

Une variante "courte" existe pour les conditions simples.

// Avant le ?, on met notre condition (les parenthèses ne sont pas obligatoires)
// Après le ?, l'instruction à exécuter si la condition est vraie
// Après le :, l'instruction à exécuter si la condition est fausse
($variable === 1) ? echo 'ok' : echo 'pas ok';

// Le code ci-dessus est équivalent à cette structure if/else 
if ($variable === 1) {
    echo 'ok';
} else {
    echo 'pas ok';
}

⚠️ Attention, les conditions ternaires peuvent très vite devenir difficile à relire.

Opérateur de fusion Null

Cet opérateur permet de vérifier l'existence d'une variable et, si elle n'est pas définie, de lui donner une valeur par défaut.

// Si $tab['uneCle'] est définie, $action prendra sa valeur, sinon, $action aura la valeur "default"
$action = $tab['uneCle'] ?? 'default';

// Le code ci-dessus est équivalent à cette structure if/else 
if (isset($tab['uneCle'])) {
    $action = $tab['uneCle'];
} else {
    $action = 'default';
}

Opérateurs courants

  • a == b pour tester si les valeurs de a et b sont égales
  • a === b pour tester si les valeurs de a et b sont égales et de même type
  • a != b pour tester si les valeurs de a et b sont différentes
  • a !== b pour tester si les valeurs de a et b sont différentes ou de type différent
  • a > b pour tester si la valeur de a est strictement supérieure à celle de b
  • a >= b pour tester si la valeur de a est supérieure ou égale à celle de b
  • a < b pour tester si la valeur de a est strictement inférieure à celle de b
  • a <= b pour tester si la valeur de a est inférieure ou égale à celle de b
  • a instanceof Object pour tester si a est un Objet de type Object

Boucles

foreach

Une boucle particulière, permettant de facilement parcourir un tableau (ou un objet iterable).


$elements = [1, 3, 12, 42];

foreach ($elements as $key => $value) {
    // 0 : 1 pour la première itération
    // 1 : 3 pour la deuxième
    // ...
    echo $key.' : '.$value;
}

Pour modifier $value et voir ces modifications appliquer dans le tableau $elements, il suffit d'un passage par référence.

$elements = [1, 3, 12, 42];

foreach ($elements as $key => &$value) {
    $value = $value + 2;
}

// Ce qui est équivalent à
foreach ($elements as $key => $value) {
    $elements[$key] = $value + 2;
}

var_dump($elements); // Affichera [3, 5, 14, 44]

for et while

Ces deux boucles sont assez classiques et fonctionnent comme dans beaucoup d'autres langages

$elements = [1, 3, 12, 42];

for ($i = 0; $i < count($elements); $i++) {
    $elements[$i] += 2;
}

var_dump($elements); // Affichera [3, 5, 14, 44]

$j = 0;
while ($j < count($elements)) {
    $elements[$j] += 2;
    $j++;
}

var_dump($elements); // Affichera [5, 7, 16, 46]
Dernières mise à jour :
Prev
Bases du PHP
Next
Procédures et fonctions