Accueil » Conseils & tutoriels sites internet » Tutoriels Wordpress » Les bases du PHP avec WordPress (1)

Les bases du PHP avec WordPress (1)

Le PHP est un langage de programmation orienté serveur sur lequel le CMS WordPress se base très majoritairement pour fonctionner. En webdesign, ignorer des notions de PHP lorsque l’on travaille sur WordPress – WooCommerce me semble être une aberration, non pas que le webdesigner est là pour coder avec un tel langage, mais il est très important de le comprendre.

Ici, je démarre une suite de tutoriels PHP dédiés à WordPress WooCommerce. Nous verrons à quel point le PHP peut nous faire gagner un temps de travail très important, ainsi que l’impact qu’il a sur la création d’un site internet (e-commerce ou non)

Dans l’immédiat, parlons simplement de PHP, comment cela fonctionne, comment s’entraîner et bien comprendre les « baaaaases » avant de passer à l’étape supérieure. Et si vous désirez vous ou votre entreprise être formés par Houria ou moi-même à WordPress, cliquez sur l’image ci-dessous !

PHP signifie « Hypertext Preprocessor ». Je doute que l’on trouve une traduction simple pour une technologie de ce type, mais le français l’a tout de même bien ancré dans les mœurs des développeurs.

Le PHP demeure l’un des langages les plus populaires car il demeure la base de tout développeur web qui désire apprendre avant de passer à des technologies supérieures, comme Ruby On Rails, Symfony, Zend Framework, et j’en passe.

Comprenez « langage serveur » un code qui essentiellement ne parlera qu’au serveur A contrario, un langage orienté « client » sera plutôt de type HTML, CSS, Jquery/Javascript, etc.

Le PHP, c’est une application que votre gentil hébergeur installe sur le serveur, c’est ce que vous installez lorsque vous mettez en place Wamp sur votre ordinateur (entre autres). En installant cette application, vous « apprenez » au serveur à bien interpréter ce langage.

La très grande majorité des CMS utilisent ce langage. Que l’on parle de WordPress, Drupal, Prestashop, Magento, tous utilisent PHP.

PHP a des versions, et à l’heure où je saisis ces lignes, la version minimale à avoir est 7.2, prochainement 7.3. Beaucoup de sites tournent encore avec une version PHP obsolète, et croyez-moi, ce n’est pas vraiment comme des consoles de jeu, ça n’est pas du tout collector. Ne pas se maintenir à jour est une erreur que l’on paie tôt ou tard.

La documentation PHP en ligne

J’ai quatre règles simples au niveau du web :

  • Google est votre « ami »
  • Le problème est entre la chaise et le clavier
  • RTFN (comprenez « Read The F****ng Notice : lisez la documentation)
  • Sauvegardez systématiquement

Outre la vulgarité de la règle n°3 que l’on retrouve un peu trop fréquemment sur les forums, il faut bien comprendre que dans la partie, on a une documentation pour tout. Ne pas la trouver, c’est justement ne pas respecter la règle n°1, ce qui déclenche la règle n°2…

Bref, la documentation de PHP est accessible ici :

https://www.php.net/

Si vous ignorez quoi chercher, dites-vous bien que finalement, vos demandes sur les moteurs de recherches (règle n°1 !) vous redirigeront tôt ou tard vers la documentation.

Outre le fait de vous aider, vous expliquer, et vous donner des exemples sur les fonctionnalités de ce langage, PHP vous informe également de la version minimale à avoir. C’est simple, suffit de lire :

https://www.php.net/supported-versions.php

Cela correspond donc tout autant à de la veille technologique qu’à un suivi de vos propres compétences en la matière.

Des forums pour parler PHP

Comment ne pas évoquer des sites comme StackOverflow ? On ne compte plus les forums d’aide, des developpez.net, et autres sites, blogs, forums qui sont là vraiment pour vous aider.

Dans le code, nul concurrent. Le cœur en est le partage, l’entraide. Respectez cela et aidez à votre propre niveau les personnes qui en font la demande.

Dites-vous que pour toute problématique rencontrée, il y a énormément de chances qu’une autre personne ait rencontré la même problématique que vous, a posé la question, a trouvé une solution, et qu’un forum ou un site en parle.

Par contre, allergiques à l’anglais, passez votre chemin ou apprenez cette langue ! Le web parlera majoritairement en anglais, à vous de vous adapter. Passer outre l’anglais, c’est tout de même passer outre la majorité des aides et réponses à vos soucis de PHP sur internet, avouez que ça serait dommage…

Démarrer un fichier PHP

Commençons par le commencement, créons un fichier PHP. Avant toute chose, veillez à bien disposer d’un serveur, comme un serveur local sur votre ordinateur avec Wamp. Le serveur doit être bien évidemment démarré et en bon état de marche (comprenez sous Wamp : « tous les voyants au vert »).

Tout fichier PHP dispose d’une extension du même nom. Vous désirez un fichier de contact ? Ce sera contact.php. Un fichier de magasins ? Nous l’appellerons magasins.php (ou shops.php pour bien être dans des standards anglophones).

L’index.php, le premier fichier lu

Par défaut, un navigateur internet affichera toujours un fichier nommé « index » s’il en trouve un. Dans le cas du PHP, créons un fichier index.php, et rangeons-le dans un répertoire de notre serveur local, sous Wamp dans /wamp64/www/cours_php/.

Nous avons donc un fichier /wamp64/www/cours_php/index.php. Si vous saisissez dans votre navigateur internet l’URL localhost/cours_php/, cela devrait afficher une page totalement blanche, le fichier étant lui-même totalement vide.

Ce fichier index.php peut être une forme de sécurité, car il permet de bloquer la navigation au sein de dossiers dont on n’aurait pas vraiment envie que les internautes ou les moteurs de recherches puissent accéder. Si par exemple vous avez créé sur votre serveur un répertoire /images/, veillez à ce que systématiquement un fichier index.php, même vide, s’y trouve, par mesure de sécurité.

« Hello World ! »

La première chose que l’on apprend à coder en PHP est historiquement l’affichage de cette phrase dans un navigateur internet. Tout simplement, afficher « Hello World ! ».

Le PHP dispose de balises ouvrantes et fermantes. Nous devons donc démarrer notre fichier par un code qui précise que nous allons parler le PHP, et finir ce fichier par un code qui précise que nous avons terminé de parler le PHP

La balise « ouvrante » est celle-ci :

<?php

Et la balise « fermante » est celle-là :

?>

Votre fichier PHP a donc seulement ceci à l’intérieur :

<?php
?>

Pour afficher du texte dans votre navigateur, PHP fournit une fonction simple, nommée echo. Nous pouvons ainsi echo du texte, comme ceci :

<?php
    echo 'Hello World';
?>

Chaque « ordre » que l’on donne en PHP se termine par un point-virgule, qui est encore à présent le champion du monde de cache-cache, tant on cherche à voir dans le code celui que l’on a oublié et qui nous génère des erreurs. Donc à chaque fois que vous donnerez un ordre en PHP (comme cet echo), terminez la ligne par un point-virgule, sans quoi une erreur de code surgira.

Testez aussi votre code. Ici, rendez-vous simplement à l’URL localhost/cours_php/ pour voir le texte s’afficher.

Les bases du PHP avec WordPress (1) 2

Je sais, tout cela n’est pas très beau, mais c’est un début ! Allons plus loin, découvrons un peu les variables PHP.

Les variables PHP : coder sans savoir

Vous allez rapidement voir que contrairement à la pensée commune, pas besoin d’être bon en maths pour savoir coder. Il y a certes une logique algébrique, mais pour ma part j’ai suivi un cursus littéraire toute ma vie, ce qui ne pas pas du tout bloqué pour apprendre le code et en faire mon métier. On peut certes faire des mathématiques en PHP, mais tant qu’à faire, on coderait idéalement une calculatrice qui compterait à notre place (ben tiens)

Déclarer une variable PHP et l’afficher

Une variable, c’est plus simple qu’il n’y paraît. En algèbre à l’école, nous apprenions ce que c’est sans forcément faire le lien avec le codage.

Par exemple, dans la formule suivante :

x + 3 = 12

Combien faut x ?

x est une variable. Ici, on peut facilement savoir que x vaut 9. Imaginons à présent cette formule :

x + y = 12

Là, pas moyen de savoir combien vaut exactement x, qui peut prendre de multiples valeurs (au moins treize, de zéro à douze). Nous avons deux variables : x et y.

En PHP, on s’enregistre en coin des informations dans des variables comme x ou y. En quelque sorte, on se les « met de côté » pour les utiliser plus tard. Chaque variable démarre par le symbole $, puis son nom, comme ceci :

$ma_variable

Dans cette variable, on peut donc enregistrer tout ce que l’on désire ! Adresse, nom de votre conjoint(e), âge de votre chien…

Par exemple, ce fameux « Hello World » vu un peu plus haut, s’enregistrerait comme ceci :

<?php
$ma_variable = 'Hello World !';
?>

Le texte est enregistré en coin, au cas où, mais il n’y a plus de « echo » pour l’afficher. On met l’information en coin, c’est tout.

Par contre, à supposer que ma variable soit du texte ou sur un format numérique, je peux en « echo » la valeur, comme ceci :

<?php
$ma_variable = 'Hello World !';
echo $ma_variable;
?>

Les différents types de variables

Car oui, vous l’avez compris, des variables il en existe beaucoup de types.

  • les entiers ou int, ou encore integer sont des nombres sans chiffres après la virgule (1, 2, 24, 42)
  • les float ont des chiffres après la virgule (comme 12,382)
  • les « array » sont des tableaux contenants plusieurs informations
  • les « booleans » n’ont que deux valeurs (true ou false) comme les zéros et uns, ou comme un vinyle
  • les « string » sont des chaînes de caractères (du texte grosso modo)

etc, vous en convenez, il faut traiter chaque information selon ce qu’elle est, de quel type, afin de ne pas multiplier « chien » par 7, cela défierai toute logique.

Un exemple d’entier est un identifiant dans une base de données. Chaque utilisateur a un numéro, partant de 1. Le second utilisateur a le numéro 2, il n’y aura jamais de numéro 2,5 (comme si on pouvait imaginer un « demi-utilisateur »).

Un float, c’est un prix ! Un prix à 3,99€, en PHP, c’est un float, vu qu’il y a des chiffres après la virgule.

Un array, c’est véritablement un tableur Excel. Nous y reviendrons, c’est une partie importante du PHP, qui n’est pas forcément simple à aborder.

Un boolean, c’est ce qu’il y a de plus facile au contraire ! « Êtes-vous connecté ? » => oui/non. Le fait que cette information ne puisse prendre que deux valeurs fait d’elle un boolean. On est connecté, ou on l’est pas, il n’y a pas de demi-mesure. Ou comme dirait Yoda, un boolean c’est « fais-le, ou ne le fais pas ».

Le saviez-vous ? Sur un vinyle, un creux vaut pour un son, un plat pour un silence,. Un creux est un 1 ou un « vrai, ou un « true », tandis qu’un plat est un zéro, un false, un null, rien en somme. C’est ça un boolean.

Un string, en-dehors de la blague vaseuse qui vient de vous passer par la tête, c’est du texte. A peu de choses près, dites-vous que c’est tout ce qui n’est pas cité plus haut.

On ne multiplie pas mathématiquement un texte avec un chiffre, ça n’est pas logique. En PHP, on ne multiplie pas un « string » par un « int ».

Mais comment voir de quel type est une variable ?

Déboguer une variable

Là, c’est cadeau, PHP vous donne du code dédié à savoir ce que contient la variable, et de quel type elle est. Il vous suffit de saisir ceci :

var_dump($ma_variable);

Et paf ! Cela fait non pas des Chocapics, mais vous donne toutes les infos utiles. Le code de notre index.php est donc à présent :

<?php
$ma_variable = 'Hello World !';
var_dump($ma_variable);
?>

Et ma page affiche ceci :

Les bases du PHP avec WordPress (1) 3

Donc merci bien PHP, qui me précise que dans le fichier situé C:\wamp64\www\php\index.php, ligne 14, j’ai demandé les informations d’une variable de type « string », de 13 caractères de long (espaces inclus), qui contient « Hello World ! ». Si on désirait que PHP fasse davantage, on en viendrait à un massage avec aromathérapie.

Si jamais vous avez un fichier PHP à rallonge, autant couper l’exécution du code. On va « tuer » le reste du code.

<?php
$ma_variable = 'Hello World !';
die(var_dump($ma_variable));
?>

La fonction die() empêche toute exécution du code qui suit, et à l’intérieur des parenthèses, je peux ajouter une information à afficher, ici le var_dump() vu plus haut.

Ma variable est dans mon var_dump() qui lui-même est dans mon die().

Aucune ligne de code après un « die() » ne pourra s’exécuter. Si ça die(), c’est fatality, exécution, « finish him » !

Les bases du PHP avec WordPress (1) 4

Les conditions PHP

Les conditions en PHP, ça sauve des vies ! En bon français, cela s’exprime comme ceci :

Si condition, alors réaction

Si vous êtes connecté, alors on vous redirige vers votre compte. Si vous n’êtes pas connecté (condition) alors on vous redirige vers la page d’accueil (réaction).

On peut donc parler de « si », « sinon si », « sinon si », « sinon. En PHP cela donne :

<?php
if (condition) {
    reaction
} elseif (autre_condition) {
    autre_reaction
} else {
    derniere_reaction
}
?>

Essayons dans notre fichier PHP avec une variable. La condition est de type « si on est connecté, on affiche 1, sinon on affiche « Déconnecté ».

<?php
    // variable boolean
    $logged = true;
    
    if ($logged) { // Si on est connecté
        echo 'Vous êtes connecté';
    } else { // Si on n'est pas connecté
        echo 'Déconnecté !';
    }
?>

La condition if est des plus simples. On peut bien évidemment tester plusieurs cas avec « si, sinon si, sinon ». Prenons une variable $logged qui pourrait à présent avoir trois paramètres : 1, 2 ou 3.

<?php
    // variable boolean
    $logged = 3;
    
    if ($logged == 1) { // Si $logged est égal à 1
        echo 'Variable logged vaut 1';
    } elseif ($logged == 2) { // Si $logged est égal à 2
        echo 'Variable logged vaut 2';
    } else { // Dernière situation : $logged est égal à 3
        echo 'Variable logged vaut 3';
    }
?>

Avec cette même condition if, nous testons à présent sa valeur (1, 2 ou 3) et nous affichons un résultat en conséquence.

Les tableaux PHP : le must de la data !

Comme précisé plus haut, un tableau en PHP s’appelle « array ». Là on parle plus d’une seule information, mais de toute une tartine d’informations, voire même toute la baguette et le pot de confiture avec.

Réalisons un tableau listant des CMS.

<?php
    $cms = array(
        'WordPress',
        'Magento',
        'Drupal',
        'Joomla',
        'Prestashop'
    );
?>

Comme il s’agit d’un tableau de données, je ne peux pas « echo » ma variable $cms. Idéalement, je vais plutôt utiliser var_dump() pour en visualiser les informations. Le tableau dispose de cinq valeurs, qui sont les cinq noms de CMS. On peut donc dire que le tableau contient cinq valeurs de type « string ».

Ici, nous parlerons d’un tableau associatif, à savoir que même si cela n’est pas précisé, PHP va numéroter les valeurs une par une au sein de ce tableau. Sachez-le, PHP commence à compter depuis zéro.

Si vous demandez à un développeur de compter jusqu’à dix, il comptera comme ceci :

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Ce qui nous fait onze valeurs, puisque le zéro est inclus.

« WordPress » a donc le numéro 0, Magento le numéro 1, Drupal le numéro 2, etc. Ces numéros s’appellent des clés, et le nom des CMS en est la valeur. Nous parlons bien dans un tableau de clés, et de valeurs associées (d’où le nom de tableau associatif). Cela revient au même que si nous écrivions ceci :

<?php
    $cms = array(
        0 => 'WordPress',
        1 => 'Magento',
        2 => 'Drupal',
        3 => 'Joomla',
        4 => 'Prestashop'
    );
?>

Dans le tableau PHP ci-dessus, plutôt que de laisser PHP compter à ma place, je m’occupe de lui préciser des clés, mais ça n’est pas obligatoire. Dans ce même tableau d’ailleurs, autant ne pas renseigner des clés si celles-ci sont très exactement celles que PHP fournit.

Nous pouvons avoir n’importe quel type de clés : string, int, boolean… Nous pouvons tout-à-fait avoir un tableau de données de ce genre :

<?php
    $cms = array(
        'blog' => 'WordPress',
        'shop' => 'Magento',
        'site' => 'Drupal',
        'site' => 'Joomla',
        'shop' => 'Prestashop'
    );
?>

Ici, je décide que la numérotation que PHP réalise avec les clés ne m’arrange pas, j’aimerais pouvoir décider pour chaque CMS s’il s’agit d’un outil de blog, de site, ou de e-commerce. Les clés sont donc de type « string », rien à voir avec ce que nous avions à l’origine.

Nous pouvons même avoir des tableaux dans des tableaux ! Voyez plutôt :

<?php
    $cms = array(
        'blog' => array(
            'WordPress',
            'WooCommerce'
        ),
        'shop' => 'Magento',
        'site' => 'Drupal',
        'site' => 'Joomla',
        'shop' => 'Prestashop'
    );
?>

J’ai donc un tableau de données, dont une de ces données est un autre tableau. Nous sommes à présent dans un tableau multidimensionnel, c’est-à-dire qu’il s’agit d’un tableau contenant potentiellement d’autres tableaux…

Généralement, ce type de tableaux est récupéré depuis une requête en base de données. L’intérêt des tableaux est de pouvoir traiter des données en masse, par exemple un tableau d’utilisateurs, un tableau de pages, un tableau d’articles de blog, un tableau de produits…

Les boucles en PHP

Si nous avons toute une liste d’informations à traiter, il va rapidement se montrer utile le fait de pouvoir les traiter une par une, en masse. Cela s’appelle une « boucle », car on « boucle » les données.

Il existe majoritairement de sortes de boucles PHP : le foreach (« pour chaque ») et le while (« tant que »)

La boucle foreach en PHP

La boucle foreach peut se traduire par « pour chaque ». Celle-ci permet de traiter dans un tableau des clés et/ou des valeurs.

Si je reprends mon premier tableau de CMS, c’est-à-dire celui-ci :

<?php
    $cms = array(
        0 => 'WordPress',
        1 => 'Magento',
        2 => 'Drupal',
        3 => 'Joomla',
        4 => 'Prestashop'
    );
?>

Je vais « echo » chacune des données. Très exactement, je vais afficher à la fois la clé et la valeur de cette clé, pour chaque entrée dans le tableau. Très simple :

<?php
    $cms = array(
        0 => 'WordPress',
        1 => 'Magento',
        2 => 'Drupal',
        3 => 'Joomla',
        4 => 'Prestashop'
    );
    foreach ($cms as $key => $value) {
        echo $key;
        echo $value;
    }
?>

Cela m’affiche quelque chose de très moche (puisqu’il n’y a aucune mise en forme HTML/CSS)

Les bases du PHP avec WordPress (1) 5

Techniquement, je me moque éperdument de la clé. Ce sont les valeurs qui ont de l’importance à mes yeux. Les zéros, les un, deux, etc, je n’en ai aucune utilisé. Ce n’est donc pas la peine de traiter l’information de la clé, ou $key. Simplifions donc cette boucle foreach.

<?php
    $cms = array(
        0 => 'WordPress',
        1 => 'Magento',
        2 => 'Drupal',
        3 => 'Joomla',
        4 => 'Prestashop'
    );
    foreach ($cms as $value) {
        echo $value;
    }
?>

Avec la boucle foreach, il est donc possible de :

  • traiter les clés et leurs valeurs dans un tableau
  • traiter uniquement les valeurs d’un tableau

Selon les données sur lesquelles vous souhaitez travailler, c’est à vous de décider, faites au plus simple 🙂

La boucle for en PHP

Ici on va compter selon un critère précis. De vous à moi, c’est extrêmement rare que je l’utilise sur un site WordPress ou une boutique WooCommerce (du coup je suis ravi de pouvoir le faire quand je peux !)

La boucle for dit ceci : « pour une valeur qui vaut zéro, tant que je n’ai pas atteint la 10e valeur, tu me fais une boucle et tu ajoutes 1 à ma valeur ». Donc si on compte bien, de zéro à dix, il y a… 11 valeurs !

Oui oui, comptez bien : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ça fait en tout onze informations 🙂 En code, cela se réalise ainsi :


    for ($i=0; $i <= 10; $i++) {
        //code
    }

Le gros avantage ici, c’est que je peux « boucler » 11 fois, pas douze ni dix. J’ai ainsi un contrôle total sur le nombre de fois que PHP « boucle ».

La boucle while en PHP

L’avantage d’une boucle while, c’est que l’on peut compter ! Cette boucle while est très utilisée sur WordPress, à un point que cela en est presque indécent…

Traduisez une boucle while par « tant que ». WordPress l’utilisera en déclarant « tant que nous avons des articles de blog, affichons-les ». Sous WooCommerce, cette boucle dira « tant que nous avons des produits, affichons-les ».

En code, nous avons une variable qui contient beaucoup d’éléments. Nous traitons ces éléments avec une boucle PHP while comme ceci :


    while ($articles <= 10) {
      # code...
    }

Autrement dit : « tant que mes articles sont inférieurs à dix« , où finalement je n’afficherai que onze articles par boucle, ou onze par page (oui oui, nous comptons systématiquement en partant de zéro !)

Les fonctions PHP : stocker du traitement de données

Idéalement, évitons de « réinventer la roue » comme s’amusent à le dire tous les développeurs. L’idée est la suivante : ne refaites jamais deux fois la même chose, jamais. Si vous refaites quelque chose en code manuellement, c’est que vous vous êtes raté, cela aurait pu être automatisé (bah oui, c’est le but du code, hé !)

Un bon développeur est un codeur fainéant, mais intelligent

Je suis particulièrement nul en maths, j’ai suivi un cursus littéraire toute ma vie. Par contre, je sais comment coder une calculatrice qui va tout faire à ma place. Si vous lisez régulièrement ce blog et si vous pensez que je suis un bon codeur, vous avez tout faux, je suis un bon fainéant intelligent (surtout un bon fainéant 😀 ). Si on connaît l’outil, la demande et la procédure, rien de plus simple que de faire les choses en peu de temps.

Imaginons un instant que je puisse afficher « Hello World ! » en un mot, un seul. Cela serait tout de même super pratique, surtout si je dois afficher « Hello World ! » plusieurs fois sur mon site ou ma page web, non ?

Quand je parlais de stockage d’information dans une variable, une fonction PHP a une logique un peu similaire, sauf que cette fois-ci nous allons non seulement stocker des variables, mais aussi les modifier, les traiter, et les renvoyer modifiées.

Une fonction, c’est comme un Pokémon, tant que je ne l’invoque pas, elle reste dans sa Pokéball.

« You pass the butter »

Créons une fonction simple, comme un petit robot dont le seul but est de passer le beurre, si j’ose m’exprimer ainsi.

La fonction affichera simplement le message « You pass the butter ». Appelons cette fonction whatIsMyPurpose()

<?php
    // whatIsMyPurpose ?
    // "You pass the butter"
    whatIsMyPurpose();

    function whatIsMyPurpose()
    {
        echo 'You pass the butter';
    }
?>

Lorsque je saisis whatIsMyPurpose(); je déclenche le fonctionnement de la fonction. Et si vous lisez bien ce qu’elle fait, elle echo « You pass the butter ».

Les bases du PHP avec WordPress (1) 6
« What is my purpose ? »

Simple ! Allons plus loin en reprenant la comparaison avec les Pokémons que j’ai faite plus haut.

Une fonction PHP « Hello World ! »

Une fonction, ça se déclare comme ceci :


function helloWorld()
{
    echo 'Hello World !';
}

Et ça s’appelle comme cela :

helloWorld();

Cela, nous l’avons vu avec notre fonction PHP whatIsMyPurpose();

Nous allons donc essayer d’aller plus loin, plus dans le détail, en reprenant une fois de plus depuis le départ.

La déclaration de la fonction, c’est ma Pokéball. helloWorld(); en plein milieu d’un fichier PHP, c’est mon invocation de mon Pokémon :-p

Un simple fichier index.php avec une telle fonction donnerait ceci :

<?php
    helloWorld();

    /**
     * show hello world if logged
     * @see http://localhost/php/
    */
    function helloWorld()
    {
        // Définition d'une variable string
        $helloworld = 'Hello World !';
        echo $helloworld;
    }
?>

Testez dans votre fichier PHP la fonction et son appel, vous verrez le résultat !

Une fonction PHP « Pika Pika ! »

Amusons-nous un peu avec une fonction pikachu() 😀

<?php
    pikachu();

    /**
     * show 'Attaque éclair'
     * @see http://localhost/php/
    */
    function pikachu()
    {
        // Définition d'une variable string
        $attaqueEclair = 'Attaque éclair !';
        echo $attaqueEclair;
    }
?>
Les bases du PHP avec WordPress (1) 7

Des paramètres et une condition de fonction PHP

Conservons cette fonction pikachu() qui m’amuse moi aussi 😉 Nous allons carrément envoyer des informations à cette fonction lorsque nous l’appelons, de manière à disposer d’un peu plus d’informations. Testons si ce bon vieux Pikachu est fatigué.

Une boucle dans une fonction PHP

Les fans de Pokémon sauront que Pikachu dispose d’un peu plus qu’une attaque éclair. Il s’agit donc d’un tableau de données en PHP, autrement dit un array(), comme nous en avions parlé plus haut. Selon l’attaque désirée, nous allons afficher son nom, en utilisant la fonction.

Comme je l’expliquais plus haut, un tableau associatif en PHP dispose de clés et de valeurs. Listons les attaques de Pikachu en valeurs d’un tableau :

        // Définition d'une variable string
        $attaques = array(
            'Éclair',
            'Mimi-Queue',
            'Rugissement',
            'Camaraderie',
            'Vive-Attaque',
            'Boule Élek',
            'Cage-Éclair',
            'Ruse',
            'Reflet',
            'Étincelle',
            'Frotte-Frimousse',
            'Coup d\'Jus',
            'Souplesse',
            'Tonnerre',
            'Hâte',
            'Éclair Fou',
            'Mur Lumière',
            'Fatal-Foudre'
        );

Grand merci au passage à la database pokebip.com pour ces informations !

Donc, je désire pouvoir sélectionner une attaque dans un tableau PHP, en appelant simplement ma fonction pikachu(). Entre les parenthèses, c’est là que je peux envoyer des informations à ma fonction, comme le numéro (la clé de mon tableau) de l’attaque de ce cher Pokémon. Je saisis donc pikachu(3); pour la 3e attaque, pikachu(2); pour la seconde…

Essayons d’appeler notre fonction avec l’attaque numéro 3. Dans notre fonction, nous allons devoir « boucler » la liste des attaques, et si le numéro de l’attaque correspond bien à celle demandée, alors nous affichons l’attaque.

<?php
    pikachu(3);

    /**
     * show attaque Pikachu
     * @see http://localhost/php/
    */
    function pikachu($demande)
    {
        // Liste des attaques de Pikachu
        $attaques = array(
            'Éclair',
            'Mimi-Queue',
            'Rugissement',
            'Camaraderie',
            'Vive-Attaque',
            'Boule Élek',
            'Cage-Éclair',
            'Ruse',
            'Reflet',
            'Étincelle',
            'Frotte-Frimousse',
            'Coup d\'Jus',
            'Souplesse',
            'Tonnerre',
            'Hâte',
            'Éclair Fou',
            'Mur Lumière',
            'Fatal-Foudre'
        );
        // Pour chaque attaque
        foreach ($attaques as $key => $attaque) {
            // Si la clé est bien l'attaque demandée
            if ($key == $demande) {
                echo $attaque;
            }
        }
    }
?>

Pas mal hein ? Ici nous avons à présent une fonction avec un paramètre, une boucle et une condition.

Notez que ma fonction pikachu() précise bien qu’elle besoin d’un paramètre, et que celui-ci est obligatoire. Si vous l’oubliez, vous aurez une erreur PHP. Ici ma fonction affichera donc « Rugissement ».

Un paramètre PHP par défaut

Idéalement, et si j’oublie d’envoyer un paramètre lorsque j’appelle ma fonction d’attaques Pikachu, il serait intelligent qu’on puisse disposer d’une attaque par défaut. Par exemple, si un jour j’oublie que je dois absolument demander une attaque précise, autant donner une attaque par défaut, la première par exemple.

Nous sommes bien d’accord que si je saisis en PHP ceci :

<?php
    pikachu();

    /**
     * show 'Attaque éclair'
     * @see http://localhost/php/
    */
    function pikachu($demande)
    {
        // Définition d'une variable string
        $attaques = array(
            'Éclair',
            'Mimi-Queue',
            'Rugissement',
            'Camaraderie',
            'Vive-Attaque',
            'Boule Élek',
            'Cage-Éclair',
            'Ruse',
            'Reflet',
            'Étincelle',
            'Frotte-Frimousse',
            'Coup d\'Jus',
            'Souplesse',
            'Tonnerre',
            'Hâte',
            'Éclair Fou',
            'Mur Lumière',
            'Fatal-Foudre'
        );
        foreach ($attaques as $key => $attaque) {
            if ($key == $demande) {
                echo $attaque;
            }
        }
    }
?>

J’ai tout de suite une erreur, puisque je ne demande aucune attaque.

Les bases du PHP avec WordPress (1) 8

Précisons dans notre fonction que le paramètre $demande a une valeur par défaut si on n’en a pas fourni.

<?php
    pikachu();

    /**
     * show 'Attaque éclair'
     * @see http://localhost/php/
    */
    function pikachu($demande = 1)
    {
        // Définition d'une variable string
        $attaques = array(
            'Éclair',
            'Mimi-Queue',
            'Rugissement',
            'Camaraderie',
            'Vive-Attaque',
            'Boule Élek',
            'Cage-Éclair',
            'Ruse',
            'Reflet',
            'Étincelle',
            'Frotte-Frimousse',
            'Coup d\'Jus',
            'Souplesse',
            'Tonnerre',
            'Hâte',
            'Éclair Fou',
            'Mur Lumière',
            'Fatal-Foudre'
        );
        foreach ($attaques as $key => $attaque) {
            if ($key == $demande) {
                echo $attaque;
            }
        }
    }
?>

Et là, ça m’affiche bien  » Mimi-Queue », soit la seconde attaque de Pikachu dans mon tableau (oui nous comptons encore et toujours en commençant par zéro !). Et donc si finalement je demande l’attaque 3, ma valeur « par défaut » de la fonction est ignorée, et je récupère bien la quatrième attaque de Pikachu dans le tableau.

Et maintenant ?

Maintenant que vous avez avec brio passé ce premier tutoriel, passons à l’étape suivante, à savoir comment travailler ce PHP que nous venons d’apprendre dans un site WordPress

Imprimer Imprimer
Suivre Cyssoo:

Développeur - formateur

Je cherche à display errors le monde, vous auriez pas la doc' ? Follow me on Twitter !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.