Apprendre à développer en PHP en une nuit

Vous avez toujours rêvé d’apprendre à développer, mais vous ne savez pas quel langage choisir ni par où commencer. De plus, vous vous êtes lancé le défi de commencer à développer après avoir passé seulement une nuit à apprendre un langage.

Que pouvez-vous apprendre en si peu de temps et est-il possible d’arriver réellement à un résultat convaincant ?

La première chose à savoir, c’est qu’apprendre à programmer en une nuit est tout à fait possible. Cependant, il y a des limites qu’il faut connaitre. Vous ne pourrez pas vous définir comme développeur après un si court apprentissage. D’ailleurs, combien de temps faut-il pour se considérer et être considéré comme un développeur ?

Tout dépend de ce qu’on entend par apprendre un langage. En effet, apprendre la syntaxe d’un langage peut prendre un quart d’heure. Apprendre à créer un programme peut se faire en quelques heures. Connaitre les standards d’un langage en une semaine. Savoir programmer en connaissant les subtilités d’un langage entre 1 et 5 ans. Maitriser parfaitement le langage peut prendre une éternité. Même après 30 ans de pratiques, il y a toujours quelque chose à apprendre sur le langage, d’autant plus si celui-ci est un langage qui évolue tel que PHP.

Le but de cet article est de vous donner les bases nécessaires afin d’apprendre la syntaxe d’un langage de programmation, et d’apprendre à réaliser un programme. Pour cela, vous allez devoir faire un passage obligatoire par l’algorithmie.

Les bases de l’algorithmie

Un algorithme est une méthode qui permet de résoudre un problème ou un ensemble de problèmes. Par exemple, vous vous demandez quel est le résultat d’une addition de deux nombres (10 et 12 par exemple). Pour cela, vous allez écrire un algorithme qui décrit les étapes nécessaires à la résolution de ce problème.

Nous allons commencer par décomposer le problème en étape, comme en mathématiques. Dans la logique, il suffit  de poser notre addition :

10 + 12 = 22

Maintenant, nous allons rendre un peu plus complexe cet exemple en admettant que nous ne connaissions pas par avance les nombres. Comme en mathématiques, remplaçons-les par des inconnus. L’avantage ici, c’est que nous avons le choix de nommer nos inconnus comme nous le désirons. Utilisons des termes parlant :

nombre1 + nombre2 = resultat

Jusqu’ici, rien de compliqué, c’est du simple français, lisible et compréhensible. Ce qu’il faut savoir et retenir, c’est que toutes les étapes doivent être décrites. Pour notre exemple, nous voulons réaliser la somme de deux nombres et afficher ce résultat.  En français, cela donnerait :

nombre1 + nombre2 = resultat
AFFICHE LE RESULTAT

Cependant, comme je vous l’ai expliqué, toutes les étapes doivent être notées. Ici, pour savoir quelle étape il manque, il suffit de lire l’algorithme. On se rend compte qu’on fait bien la somme de deux nombres, qu’on affiche le résultat, mais il nous manque les informations sur les deux nombres. À quoi correspond le nombre1 et à quoi correspond le nombre2 ?

Vous l’aurez compris, il faut dire à l’algorithme à quoi correspond chacun des nombres. Comme pour les exemples précédents, vous pouvez utiliser les connaissances que vous avez déjà acquises en mathématiques et en français pour cela. Ce qui donnerait :

nombre1 = 10
nombre2 = 12
nombre1 + nombre2 = resultat
AFFICHE resultat

Ainsi, vous venez à la fois d’aborder les bases de la création d’algorithmes ainsi qu’un nouveau concept appelé variable. Gardez cela dans un coin de votre tête, nous y reviendrons plus tard.

Le principe même d’un algorithme est de trouver la logique afin de développer vos programmes. Pour faire simple, c’est ce qui vous aide à réaliser vos programmes. La création d’un algorithme en utilisant cette méthode n’est pas forcément nécessaire, mais elle peut se révéler utile lorsque vous bloquez sur des problèmes plus complexes.

Les bases du développement

Quel que soit le langage de programmation que vous décidez d’apprendre, il y aura toujours au moins 5 choses essentielles à apprendre. Lorsque vous maitrisez celles-ci, vous pouvez vous lancer dans le développement grâce au langage choisi.

Dans ce cours, nous parlerons principalement du langage PHP.  Avant tout, il faut savoir que le langage PHP ne s’exécutera que dans un environnement serveur PHP, et que pour cela il faut toujours ouvrir la balise PHP et la refermer.

Ouvrir la balise PHP se présente sous cette forme :

 <?php      ?>

Le code PHP doit se trouver entre <?php et ?>.

Il faut aussi connaitre ce qu’on appelle les commentaires. Grâce aux commentaires vous pourrez et devrez commenter des parties de votre code. Cela permet d’une part de revenir dessus plusieurs mois après sans être perdu dans votre code, et d’autre part d’aider les autres développeurs qui peuvent éventuellement travailler sur votre code.

En PHP il existe trois façons de faire des commentaires : Les commentaires sur une ligne grâce à # et à // et les commentaires sur plusieurs lignes grâce à /* */.

<?php
echo "Message à afficher" ; // ceci est un commentaire sur une ligne
echo "Message à afficher" ; # ceci est un commentaire sur une ligne
/*
Ceci est un commentaire
sur plusieurs lignes
*/
?>

Les variables

Vous avez déjà pu avoir un aperçu de ce qu’est une variable grâce à l’introduction sur l’algorithme. Pour donner un peu plus d’explications, une variable est définie par un nom sans espaces ni caractères spéciaux (accents, virgule, point d’exclamation, etc.). Dans notre algorithme nous avons défini trois variables : nombre1, nombre2 et resultat. Remarquez qu’il n’y a ni espace ni accent.

Une variable comme son nom l’indique contient des informations qui peuvent varier, par exemple un nombre ou un texte. Selon les langages de programmation, les variables contiennent aussi ce qu’on appelle un « type », qu’il faut définir à l’avance. Le type de la variable indique ce qu’elle va contenir (un nombre ou un texte, aussi appelé chaine de caractères ou string en anglais).

Si on reprend l’exemple de notre algorithme, nous avons trois variables qui sont du même type : nombre. Si on voulait afficher un message en plus du résultat on aurait eu un type string (chaine de caractères).

En PHP, nous n’avons pas besoin de définir le type de variable, cependant pour dire que c’est une variable, il faut la précéder du signe $ :

$nombre1 + $nombre2 = $resultat ;

En PHP, comme dans la plupart des langages, il faut finir les instructions par un point-virgule ;

Une variable n’est, par définition, pas figée avec sa valeur définie. C’est-à-dire qu’à tout moment elle peut prendre une autre valeur contrairement aux constantes, qui possèdent une valeur qui ne peut jamais changer.

Pour attribuer une valeur à une variable, il faut la faire suivre du signe égal (=). En reprenant notre exemple, pour qu’il soit correct nous devrions plutôt écrire :

$resultat = $nombre1 + $nombre2 ;

Il existe plusieurs façons d’attribuer une valeur à une variable, qui diffère si la valeur est un nombre ou une chaine de caractères. Pour attribuer un nombre, il suffit de lui attribuer sans oublier le point-virgule à la fin. Concernant la chaine de caractères, il faut l’entourer de simple quote ou de guillemets.

$nombre1 = 10 ;
$chaine = ‘Je suis une chaine de caractère’ ;
$chaine2 = "Je suis aussi une chaine de caractère" ;

Les tableaux

En programmation, il existe ce qu’on appelle les tableaux (ou array en anglais). Ils permettent de manipuler des listes de valeurs. Contrairement aux variables qui sont capables de stocker une seule valeur, les tableaux peuvent en stocker un nombre infini. Cela sert par exemple à stocker les différentes notes d’un groupe ou bien les informations d’un utilisateur (nom, prénom, âge, etc.).

Les tableaux sont composés de clés et de valeurs. Chaque valeur est associée à une clé. Les clés peuvent prendre deux formes, soit des valeurs entières de 0 à +∞, soit des noms afin de faire des associations.

Prenons un exemple. Vous êtes professeur et vous vous occupez d’une classe de 7 élèves. Vous devez gérer les notes de vos élèves. Pour cela, vous allez utiliser un tableau. Comme expliqué précédemment, vous avez la possibilité de choisir entre deux tableaux :

0123456
12151413121110

Ce premier tableau représente les clés en haut, et les valeurs en bas. Ainsi, la troisième valeur est 14, mais sa clé est 2, parce que la numérotation commence à 0. Cependant, avec seulement des clés numériques, il est difficile de savoir à qui ou à quoi correspondent les clés. C’est pour cela qu’il est possible de nommer les clés pour effectuer des associations. Cela donnera donc un tableau avec des noms au lieu des clés :

JeanPaulPierreJaneJulieMathieuAlex
12151413121110

En programmation, pour définir des valeurs et des clés et pour y accéder on procède comme suit :

<?php

echo "Troisième note : ".$tableau[2] ; // Affiche la troisième note : 14
echo "Note de Pierre : ".$tableau['Pierre'] ; // Affiche 14

?>

Pour attribuer des valeurs aux tableaux, il suffit de procéder comme avec les variables, mais en n’oubliant pas la clé :

<?php

$tableau[3] = 13 ; // attribue 13 à la 4e clé du tableau
$tableau[‘Jane’] = 13 ; attribue 13 à la clé Jane

 ?>

Il est également possible d’utiliser une variable pour définir ou accéder à la clé du tableau :

<?php

$i = 0 ;
$tableau[$i] = 12 ; // revient à écrire $tableau[0] = 12 ;

?>

Les opérateurs

En développement, il existe une chose indispensable qui s’appelle les opérateurs. Ce ne sont que des signes mathématiques qui fonctionnent sur le même principe que les mathématiques élémentaires pour la plupart. Ainsi, on peut facilement faire des additions, multiplications, soustraction et division. Pour cela, il suffit pour la plupart des langages, d’utiliser les symboles : +, *, – et /.

Nous l’avons vu précédemment, en effectuant l’addition de deux nombres. Si on avait voulu multiplier ces deux nombres, on aurait procédé comme suit :

<?php

$nombre1 = 10 ;
$nombre2 = 5 ;
$resultat = $nombre1 * $nombre2 ;

 ?>

Cela fonctionne de la même façon que pour l’addition. Il suffit de remplacer le signe par celui désiré. De cette façon, on peut réaliser des calculs plus complexes en utilisant les parenthèses :

<?php

$resultat = (10 + 5) / 4 + (3 * 2) + (5 – 4) ;

 ?>

Il existe encore d’autres types d’opérateurs. En PHP il existe notamment le modulo représenté par % ainsi que l’exponentielle représentée par **. Contrairement à la division, le modulo lui, renvoi le reste d’une division. Si on effectue le modulo de 5 / 3 on obtient 2. Pour s’en servir, on l’utilise comme suit :

$resultat = 5 % 3 ;

Concernant l’exponentielle, c’est le résultat de l’élévation d’un nombre à la puissance d’un second. Pour faire simple, pour faire 48 il suffit de faire : 4 ** 8.

Les conditions

Les conditions sont à la fois la base et la source de tous les programmes que vous pourrez écrire. C’est ce qui permet de faire les tests nécessaires afin d’arriver aux résultats souhaités. On dénote trois types de conditions : les if else, les switchs et les ternaires.

Commençons avec les if else. Ce type de condition seul peut suffire à traiter n’importe quelle condition, cependant on verra que dans certains cas, d’autres conditions sont plus adaptées, bien qu’on puisse quand même tout traiter grâce aux if else.

Afin de pouvoir effectuer une condition, il est important de connaitre les symboles de comparaisons.

SymboleSignification
==Égal à
!=Différent de
Strictement supérieur à
>=Supérieur ou égal à
Strictement inférieur à
<=Inférieur ou égal à

Il est important de retenir que pour tester une égalité il faut employer le double égal (==), car dans le cas contraire cela signifie que vous attribuez une valeur à la variable testée. Réutilisons l’exemple du calcul, mais ajoutons-y un test maintenant. Nous allons tester si le premier nombre est supérieur au deuxième, si c’est le cas, on affiche un message.

À savoir : en PHP, pour afficher un message, ou une variable il faut utiliser la structure du langage appelé echo

Ainsi, le programme se présenterait sous cette forme :

<?php

$nombre1 = 10 ;
$nombre2 = 12 ;

     if ( $nombre1 > $nombre2 ){
          echo "Le nombre 1 est supérieur au nombre 2" ;
     }

?>

La condition s’écrit entre parenthèses et les instructions sont entre accolades.

Dans le cas du programme qu’on vient d’écrire, la condition n’est pas validée, car le premier nombre et plus petit que le second. Cependant, il ne se passe rien, car on n’a pas défini de comportement si on n’entre pas dans la condition. Cela se fait avec else. En français, nous disons au programme : « Si nombre 1 est supérieur à nombre deux, affiche un message. Sinon affiche un autre message. » Cela se traduit comme suit :

<?php

$nombre1 = 10 ;
$nombre2 = 12 ;

     if ( $nombre1 > $nombre2 ){
          echo "Le nombre 1 est supérieur au nombre 2" ;
     } else {
          echo "Le nombre 2 est supérieur au nombre 1 " ;
     }

?>

Maintenant, nous pouvons aller plus loin, en testant également si le nombre 1 est égal au nombre 2. Pour cela nous allons utiliser elseif (sinon si).

<?php

$nombre1 = 10 ;
$nombre2 = 12 ;

     if ( $nombre1 > $nombre2 ){
          echo "Le nombre 1 est supérieur au nombre 2" ;
     } elseif ( $nombre1 == $nombre2 )  {
          echo "Le nombre 1 est égal au nombre 2 " ;
     } else {
          echo "Le nombre 2 est supérieur au nombre 1 " ;
     }

?>

Il est important de savoir que le simple else (sinon) se place à la toute fin, lorsqu’aucune des situations n’entre en compte dans notre condition, c’est par celle-ci qu’elle passera.

Dans un if on peut également poser plusieurs conditions. Nous utilisons pour ça des mots clés.

Mot cléEquivalentSignification
AND&&Et
OR||Ou

Nous allons effectuer le test suivant : « Si le nombre 1 est supérieur à 4, mais plus petit que le nombre 2, on affiche un message. »

 <?php

$nombre1 = 10 ;
$nombre2 = 12 ;

     if ( $nombre1 > 4 && $nombre1 < $nombre2 ){
          echo "Le nombre 1 est supérieur à 4 et plus petit que le nombre 2" ;
     }

?>

Comme pour les équations mathématiques, dans les conditions on peut également y utiliser des parenthèses.

Voyons maintenant les switchs. Ces conditions servent lorsque vous avez un test répétitif à faire. Par exemple : « Tester si le nombre 1 est égal à 8, tester si le nombre 1 est égal à 10, tester si le nombre 1 est égal à 12, etc. ». Les switchs utilisent ce qu’on appelle des cas. Ce qui donnerait : « Dans le cas où le nombre 1 est égal à 8, dans le cas où le nombre 1 est égal à 10, etc. » Elle s’écrit comme suit :

<?php

$nombre1 = 12 ;

     switch ( $nombre1 ) {
          case 8 :
               echo "Nombre 1 vaut 8" ;
          break ;

          case 10:
               echo “Nombre 1 vaut 10”;
          break;

          case 12:
               echo “Nombre 1 vaut 12;”
          break;

          default:
               echo “Le nombre 1 n’entre dans aucune des conditions”;
     }

?>

Au même titre qu’un else, il est préférable de finir une condition switch par un default, qui affiche une valeur par défaut si on n’entre dans aucune des conditions.

Pour finir sur les conditions, il y a ce qui s’appelle des ternaires, ce sont des conditions condensées en une seule ligne. Les ternaires permettent d’effectuer deux actions sur une seule ligne : elles testent la valeur d’une variable dans une condition, et affectent une valeur à une variable selon la condition.

Pour l’exemple, on va tester si le nombre 1 est supérieur au nombre deux, si c’est le cas on lui attribue une chaine de caractères : « Oui », sinon on attribue « Non ».

<?php

$resultat = ($nombre1 > $nombre2) ? "Oui" : "Non" ;

?>

Les boucles

Les boucles sont essentielles aux langages de programmation. Elles permettent d’effectuer plusieurs fois une même opération jusqu’à ce que la condition soit remplie. On dénote quatre types de boucles en PHP : for, while, foreach, do.

Pour l’appréhension des boucles, nous allons reprendre un exemple mathématique. Cette fois-ci nous allons tester si le nombre 1 est supérieur au nombre 2. Si ce n’est pas le cas, on lui ajoute 1 et on test à nouveau. Jusqu’à ce que le nombre 1 soit supérieur au nombre deux.

La boucle for

La syntaxe d’une boucle for est donc la suivante :

$nombre2 = 12 ;

     for ( $nombre1 = 8 ; $nombre1 <= $nombre2 ; $nombre1++ ) {
          echo "Le nombre 1 est plus petit que le nombre 2" ;
     }

Pour écrire une boucle for, il faut mettre la condition initiale (ici $nombre1 = 8), faire suivre d’un point-virgule, écrire la condition à tester (ici on teste si le nombre 1 est plus petit ou égal au nombre deux) suivi d’un point-virgule, et enfin écrit l’action à effectuer si la condition n’est pas remplie (ici on ajoute 1 au nombre un).

À savoir : Il existe deux façons d’ajouter 1 à une variable : $nombre = $nombre + 1 ; ou $nombre++ ; cela à la même signification, mais l’un est plus pratique et rapide à écrire que l’autre.

En anglais, le mot « For » signifie « Pour ».

La boucle while

La boucle while (tant que) fonctionne comme un if, à la différence qu’elle s’exécutera autant de fois que nécessaire afin de remplir la condition. Il est très important de correctement écrire ces boucles, car dans le cas où la condition n’est jamais remplie, la boucle s’effectuera à l’infini, jusqu’à causer un plantage du programme. En reprenant l’exemple ci-dessus transposé pour la boucle while, cela donnerait :

$nombre1 = 8 ;
$nombre2 = 12

     while ( $nombre1 <= $nombre2 ) {
          echo "Le nombre 1 est plus petit que le nombre 2" ;
          $nombre1++ ;
     }

Dans ce cas-là, si nous avions oublié l’incrémentation à la fin de la boucle ($nombre1++), la condition n’aurait jamais été remplie, ce qui aurait causé le plantage de l’application.

La boucle foreach

La boucle foreach sert essentiellement à parcourir un tableau, il est ainsi possible d’avoir soit la valeur, soit la clé ainsi que la valeur. On l’utilise comme suit :

          foreach ( $tableau as $cle => $valeur ) {
                         echo $cle. " – ".$valeur. "<br />" ;
          }
          // autre utilisation, si on ne désire que la valeur :
          foreach ( $tableau as $valeur) {
                         echo "Valeur : ".$valeur ."<br />";
          }

La boucle do while

Nous finissons les boucles avec l’instruction do associée au terme while. Ce type de boucle est similaire à la boucle while, et possède la particularité de s’exécuter au minimum une fois, quoi qu’il arrive. Pour reprendre notre exemple avec la comparaison de deux nombres :

$nombre1 = 8 ;
$nombre2 = 12 ;

          do {
                         echo "Le nombre 1 est plus petit que le nombre 2" ;
                         $nombre1++ ;

          } while ( $nombre1 <= $nombre2 )

Les fonctions

On distingue deux types de fonctions. Celles qui sont déjà existantes dans le langage de programmation, par exemple la fonction qui permet de mettre une chaine de caractères en majuscule (strtoupper), ou pour savoir si une variable est vide (empty).  Le second type de fonction est celle que vous écrirez vous-même pour un but bien précis. Par exemple, ajouter 8 a une variable, convertir une date anglaise en date française, etc.

Il faut savoir que tous les langages de programmation viennent avec un manuel. C’est en le lisant et le comprenant qu’on est capable d’utiliser pleinement le langage. Pour les fonctions déjà existantes en PHP vous pouvez les trouer ici http://php.net/manual/fr/indexes.functions.php.

Une fonction s’utilise en écrivant le nom de la fonction, suivi de parenthèses. À l’intérieur de ses parenthèses, il peut y avoir des arguments ou non. Par exemple, pour mettre en majuscule la première lettre d’une chaine de caractère il faut utiliser ucfirst() :

          $chaine = "la chaine de caractère" ;
          $majuscule = ucfirst( $majuscule ) ;
          echo $majuscule ; // Affiche : La chaine de caractère

Écrivez vos propres fonctions

Écrire ses propres fonctions est assez facile, car il suffit de précéder le nom de la fonction que l’on souhaite écrire, du mot clé function. Si votre fonction doit envoyer une valeur, il faudra utiliser le mot clé return. Pour l’exemple, nous allons créer une fonction qui permet d’additionner deux nombres :

     function addition( $nb1, $nb2 ) {
          return $nb1 + $nb2 ;
     }

// La fonction s’utilise comme suit :
$resultat = addition( 10, 8 ) ; // Nous pouvons directement envoyer des nombre
$resultat = addition( $nombre1, $nombre2 ) ; // Nous pouvons également utiliser des variables

Bonus

Il vous arrivera certainement que pour une raison ou une autre, vous ayez besoin d’inclure dans votre page php une partie d’une autre page, ou un script php. Pour cela il existe deux possibilités : include et require, qui se déclinent aussi en include_once et require_once.

La différence entre include et require, provient du fait que lors de l’échec du require, une erreur fatale sera produite et le script s’arrêtera, alors qu’avec include, une erreur n’arrêtera pas tout le script.

La variante avec once précise au script que si le fichier a déjà été inclus une fois, il ne devra plus l’être à nouveau. L’utilisation de include et require se fait comme suit :

          include ‘mon_script.php’ ;
          require ‘/chemin/vers/mon_fichier.php’ ;

Vous aurez peut-être également besoin de stocker temporairement, ou pour plus longtemps, des valeurs. Pour cela vous avez deux possibilités en PHP. La première est d’utiliser des variables de sessions. Elles seront détruites à la fermeture de votre site. Si vous voulez stocker plus longtemps vos variables (comme un nom d’utilisateur par exemple), vous devrez utiliser les cookies.

Pour écrire et afficher des variables de session, il faut démarrer la session, puis les variables sont écrites comme pour les tableaux :

          session_start() ;

          $_SESSION[‘identifiant’] = "Mon Identifiant" ;
          echo $_SESSION[‘identifiant’] ;

Les variables de sessions se transmettent de page en page, vous pouvez ainsi vous en servir pour garder en mémoire le temps de la session, certaines informations.

Si vous voulez garder en mémoire pendant plus longtemps certaines informations, vous devez utiliser les cookies. Pour définir un cookie, il faut utiliser la fonction setcookie, qui prend en paramètre le nom du cookie, la valeur et la durée de vie du cookie. Pour afficher un cookie, cela se passe comme pour les sessions sauf qu’il faut utiliser le mot clé cookie à la place :

          setcookie("identifiant", $valeur, time()+3600) // expire dans 1 heure

          echo "Le cookie : ". $_COOKIE[‘identifiant’] ;

Il peut également arriver que vous ayez besoin de transmettre des variables, de page en page ou sur la même page.

Pour cela il existe deux types de variables que vous pouvez transmettre : get et post.

Les variables get passent par l’adresse, sous la forme de paramètre, par exemple :

                http://monsite.com/index.php?variable1=Valeur_variable_1&variable2=10

Pour récupérer les valeurs get, on doit utiliser le mot clé get :

          $valeur1 = $_GET[‘variable1’ ];

Quant aux variables posts, elles sont principalement utilisées par les formulaires (par exemple un formulaire de contact). Pour les récupérer on utilise le mot clé post :

          $valeur1 = $_POST[‘variable1’] ;

Vous avez maintenant toutes les clés en main pour commencer à développer. Pour vous entrainer, vous pouvez coder le jeu du Tic-Tac-Toe. Pour cela vous allez devoir utiliser tout ce que vous avez appris ici. Nous ne donnons délibérément pas la solution, car d’une part il en existe une multitude et d’autre part cela ne laissera place à aucune tentation lorsque vous bloquerez, vous devrez trouver la solution par vous-même.