Exercices - PHP

Comme dans de nombreux domaines, pour progresser, il est nécessaire de s'entraîner. Vous trouverez ci-après une compilation d'exercices sur le PHP. Ces derniers balaient de nombreuses notions. La lecture de l'ensemble des chapitres du cours vous permettra de résoudre tous les exercices.

Les variables

Exercice 1

Parmi les variables suivantes, lesquelles ont un nom valide : $a, $_a, $a_a, $AAA, $a!, $1a et $a1 ?

Seules les variables $a, $_a, $a_a, $AAA et $a1 ont un nom valide en PHP. $1a n'est pas un nom de variable valide car il commence par un chiffre, tandis que $1a est également incorrect car il contient un caractère interdit.

Exercice 2

Modifier le code ci-dessous pour calculer la moyenne des notes.

PHP
<?php
   $note_maths = 15;
   $note_francais = 12;
   $note_histoire_geo = 9;
   $moyenne = 0;
   echo 'La moyenne est de '.$moyenne.' / 20.';
?>
Résultat
La moyenne est de 0 / 20.

PHP
<?php
   $note_maths = 15;
   $note_francais = 12;
   $note_histoire_geo = 9;
   $moyenne = ($note_maths + $note_francais + $note_histoire_geo) / 3;
   echo 'La moyenne est de '.$moyenne.' / 20.';
?>
Résultat
La moyenne est de 12 / 20.

Exercice 3

Calculer le prix TTC du produit.

PHP
<?php
   $prix_ht = 50;
   $tva = 20;
   $prix_ttc = 0;
   echo 'Le prix TTC du produit est de '.$prix_ttc.' €.';
?>
Résultat
Le prix TTC du produit est de 0 €.

PHP
<?php
   $prix_ht = 50;
   $tva = 20;
   $prix_ttc = $prix_ht * (1 + ($tva / 100));
   echo 'Le prix TTC du produit est de '.$prix_ttc.' €.';
?>
Résultat
Le prix TTC du produit est de 60 €.

Exercice 4

Déclarer une variable $test qui contient la valeur 42. En utilisant la fonction var_dump(), faire en sorte que le type de la variable $test soit string et que la valeur soit bien de 42.

PHP
<?php
   $test = '42';
   var_dump($test);
?>
Résultat
string(2) "42"

Les conditions (if, else et elseif)

Exercice 5

Déclarer une variable $sexe qui contient une chaîne de caractères. Créer une condition qui affiche un message différent en fonction de la valeur de la variable.

PHP
<?php
   $sexe = 'homme';
   if($sexe == 'femme') :
      echo 'Bonjour Madame.';
   elseif($sexe == 'homme') :
      echo 'Bonjour Monsieur.';
   else :
      echo 'Bonjour sexe inconnu.';
   endif;
?>
Résultat
Bonjour Monsieur.

Exercice 6

Déclarer une variable $budget qui contient la somme de 1 553,89 €. Déclarer une variable $achats qui contient la somme de 1 554,76 €. Afficher si le budget permet de payer les achats.

PHP
<?php
   $budget = 1553.89;
   $achats = 1554.76;
   if($budget >= $achats) :
      echo 'Le budget ('.$budget.' €) permet de payer tous les achats ('.$achats.' €).';
   else :
      echo 'Le budget ('.$budget.' €) ne permet pas de payer tous les achats ('.$achats.' €).';
   endif;
?>
Résultat
Le budget (1553.89 €) ne permet pas de payer tous les achats (1554.76 €).

Exercice 7

Déclarer une variable $age qui contient la valeur de type integer de votre choix. Réaliser une condition pour afficher si la personne est mineure ou majeure.

PHP
<?php
   $age = 19;
   if($age >= 18)
      echo 'Vous êtes majeur.';
   else
      echo 'Vous êtes mineur.';
?>
Résultat
Vous êtes majeur.

Exercice 8

Déclarer une variable $heure qui contient la valeur de type integer de votre choix comprise entre 0 et 24. Créer une condition qui affiche un message si l'heure est le matin, l'après-midi ou la nuit.

PHP
<?php
   $heure = 14;
   if($heure < 0 || $heure > 23) :
      echo 'Houla, cette heure est incorrecte.';
   elseif($heure >= 7 && $heure < 12) :
      echo 'Bonne matinée.';
   elseif($heure >= 12 && $heure < 22) :
      echo 'Bonne après-midi.';
   else :
      echo 'Bonne nuit.';
   endif;
?>
Résultat
Bonne après-midi.

Les boucles

Exercice 9

En utilisant la boucle while, afficher tous les codes postaux possibles pour le département 77.

PHP
<?php
   $i = 77000;
   while($i <= 77999) {
      echo $i.' ';
      $i++;
   }
?>
Résultat
77000 77001 77002 77003 77004 77005 77006 77007 77008 77009 77010 77011 77012 77013 77014 77015 77016 77017 77018 77019 77020 77021 77022 77023 77024 77025 77026 77027 77028 77029 77030 77031 77032 77033 77034 77035 77036 77037 77038 77039 77040 77041 77042 77043 77044 77045 77046 77047 77048 77049 77050 77051 77052 77053 77054 77055 77056 77057 77058 77059 77060 77061 77062 77063 77064 77065 77066 77067 77068 77069 77070 77071 77072 77073 77074 77075 77076 77077 77078 77079 77080 77081 77082 77083 77084 77085 77086 77087 77088 77089 77090 77091 77092 77093 77094 77095 77096 77097 77098 77099 77100 77101 77102 77103 77104 77105 77106 77107 77108 77109 77110 77111 77112 77113 77114 77115 77116 77117 77118 77119 77120 77121 77122 77123 77124 77125 77126 77127 77128 77129 77130 77131 77132 77133 77134 77135 77136 77137 77138 77139 77140 77141 77142 77143 77144 77145 77146 77147 77148 77149 77150 77151 77152 77153 77154 77155 77156 77157 77158 77159 77160 77161 77162 77163 77164 77165 77166 77167 77168 77169 77170 77171 77172 77173 77174 77175 77176 77177 77178 77179 77180 77181 77182 77183 77184 77185 77186 77187 77188 77189 77190 77191 77192 77193 77194 77195 77196 77197 77198 77199 77200 77201 77202 77203 77204 77205 77206 77207 77208 77209 77210 77211 77212 77213 77214 77215 77216 77217 77218 77219 77220 77221 77222 77223 77224 77225 77226 77227 77228 77229 77230 77231 77232 77233 77234 77235 77236 77237 77238 77239 77240 77241 77242 77243 77244 77245 77246 77247 77248 77249 77250 77251 77252 77253 77254 77255 77256 77257 77258 77259 77260 77261 77262 77263 77264 77265 77266 77267 77268 77269 77270 77271 77272 77273 77274 77275 77276 77277 77278 77279 77280 77281 77282 77283 77284 77285 77286 77287 77288 77289 77290 77291 77292 77293 77294 77295 77296 77297 77298 77299 77300 77301 77302 77303 77304 77305 77306 77307 77308 77309 77310 77311 77312 77313 77314 77315 77316 77317 77318 77319 77320 77321 77322 77323 77324 77325 77326 77327 77328 77329 77330 77331 77332 77333 77334 77335 77336 77337 77338 77339 77340 77341 77342 77343 77344 77345 77346 77347 77348 77349 77350 77351 77352 77353 77354 77355 77356 77357 77358 77359 77360 77361 77362 77363 77364 77365 77366 77367 77368 77369 77370 77371 77372 77373 77374 77375 77376 77377 77378 77379 77380 77381 77382 77383 77384 77385 77386 77387 77388 77389 77390 77391 77392 77393 77394 77395 77396 77397 77398 77399 77400 77401 77402 77403 77404 77405 77406 77407 77408 77409 77410 77411 77412 77413 77414 77415 77416 77417 77418 77419 77420 77421 77422 77423 77424 77425 77426 77427 77428 77429 77430 77431 77432 77433 77434 77435 77436 77437 77438 77439 77440 77441 77442 77443 77444 77445 77446 77447 77448 77449 77450 77451 77452 77453 77454 77455 77456 77457 77458 77459 77460 77461 77462 77463 77464 77465 77466 77467 77468 77469 77470 77471 77472 77473 77474 77475 77476 77477 77478 77479 77480 77481 77482 77483 77484 77485 77486 77487 77488 77489 77490 77491 77492 77493 77494 77495 77496 77497 77498 77499 77500 77501 77502 77503 77504 77505 77506 77507 77508 77509 77510 77511 77512 77513 77514 77515 77516 77517 77518 77519 77520 77521 77522 77523 77524 77525 77526 77527 77528 77529 77530 77531 77532 77533 77534 77535 77536 77537 77538 77539 77540 77541 77542 77543 77544 77545 77546 77547 77548 77549 77550 77551 77552 77553 77554 77555 77556 77557 77558 77559 77560 77561 77562 77563 77564 77565 77566 77567 77568 77569 77570 77571 77572 77573 77574 77575 77576 77577 77578 77579 77580 77581 77582 77583 77584 77585 77586 77587 77588 77589 77590 77591 77592 77593 77594 77595 77596 77597 77598 77599 77600 77601 77602 77603 77604 77605 77606 77607 77608 77609 77610 77611 77612 77613 77614 77615 77616 77617 77618 77619 77620 77621 77622 77623 77624 77625 77626 77627 77628 77629 77630 77631 77632 77633 77634 77635 77636 77637 77638 77639 77640 77641 77642 77643 77644 77645 77646 77647 77648 77649 77650 77651 77652 77653 77654 77655 77656 77657 77658 77659 77660 77661 77662 77663 77664 77665 77666 77667 77668 77669 77670 77671 77672 77673 77674 77675 77676 77677 77678 77679 77680 77681 77682 77683 77684 77685 77686 77687 77688 77689 77690 77691 77692 77693 77694 77695 77696 77697 77698 77699 77700 77701 77702 77703 77704 77705 77706 77707 77708 77709 77710 77711 77712 77713 77714 77715 77716 77717 77718 77719 77720 77721 77722 77723 77724 77725 77726 77727 77728 77729 77730 77731 77732 77733 77734 77735 77736 77737 77738 77739 77740 77741 77742 77743 77744 77745 77746 77747 77748 77749 77750 77751 77752 77753 77754 77755 77756 77757 77758 77759 77760 77761 77762 77763 77764 77765 77766 77767 77768 77769 77770 77771 77772 77773 77774 77775 77776 77777 77778 77779 77780 77781 77782 77783 77784 77785 77786 77787 77788 77789 77790 77791 77792 77793 77794 77795 77796 77797 77798 77799 77800 77801 77802 77803 77804 77805 77806 77807 77808 77809 77810 77811 77812 77813 77814 77815 77816 77817 77818 77819 77820 77821 77822 77823 77824 77825 77826 77827 77828 77829 77830 77831 77832 77833 77834 77835 77836 77837 77838 77839 77840 77841 77842 77843 77844 77845 77846 77847 77848 77849 77850 77851 77852 77853 77854 77855 77856 77857 77858 77859 77860 77861 77862 77863 77864 77865 77866 77867 77868 77869 77870 77871 77872 77873 77874 77875 77876 77877 77878 77879 77880 77881 77882 77883 77884 77885 77886 77887 77888 77889 77890 77891 77892 77893 77894 77895 77896 77897 77898 77899 77900 77901 77902 77903 77904 77905 77906 77907 77908 77909 77910 77911 77912 77913 77914 77915 77916 77917 77918 77919 77920 77921 77922 77923 77924 77925 77926 77927 77928 77929 77930 77931 77932 77933 77934 77935 77936 77937 77938 77939 77940 77941 77942 77943 77944 77945 77946 77947 77948 77949 77950 77951 77952 77953 77954 77955 77956 77957 77958 77959 77960 77961 77962 77963 77964 77965 77966 77967 77968 77969 77970 77971 77972 77973 77974 77975 77976 77977 77978 77979 77980 77981 77982 77983 77984 77985 77986 77987 77988 77989 77990 77991 77992 77993 77994 77995 77996 77997 77998 77999

Exercice 10

En utilisant la boucle for, afficher la table de multiplication du chiffre 5.

PHP
<?php
   $n = 5;
   for($i = 1;$i <= 10;$i++) {
      echo $n.' x '.$i.' = '.($n * $i).' <br />';
   }
?>
Résultat
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
5 x 5 = 25
5 x 6 = 30
5 x 7 = 35
5 x 8 = 40
5 x 9 = 45
5 x 10 = 50

Exercice 11

En utilisant deux boucles for, écrire un script qui produit le résultat ci-dessous.

Résultat
1
22
333
4444
55555

PHP
<?php
   for($i = 1;$i <= 5;$i++) {
      for($k = 1;$k <= $i;$k++) {
         echo $i;
      }
      echo '<br />';
   }
?>

Exercice 12

Déclarer une variable avec le nom de votre choix et avec la valeur 0. Tant que cette variable n'atteint pas 20, il faut :

  • l'afficher ;
  • incrémenter sa valeur de 2 ;

Si la valeur de la variable est égale à 10, la mettre en valeur avec la balise HTML appropriée.

PHP
<?php
   $k = 0;
   while($k <= 20) {
      if($k == 10) {
         echo '<strong>'.$k.'</strong>';	  
      } else {
         echo $k;
      }
      echo '<br />';
      $k = $k + 2;
   }
?>
Résultat
0
2
4
6
8
10
12
14
16
18
20

Les tableaux

Exercice 13

Déclarer une variable de type array qui stocke les informations suivantes :

  • France : Paris
  • Allemagne : Berlin
  • Italie : Rome

Afficher les valeurs de tous les éléments du tableau en utilisant la boucle foreach.

PHP
<?php
   $tableau = array(
      'France' => 'Paris',
      'Allemagne' => 'Berlin',
      'Italie' => 'Rome'
   );
   foreach($tableau as $t) {
      echo $t.' ';	   
   }
?>
Résultat
Paris Berlin Rome

Exercice 14

En utilisant la fonction rand(), remplir un tableau avec 10 nombres aléatoires. Puis, tester si le chiffre 42 est dans le tableau et afficher un message en conséquence. Enfin, afficher le contenu de votre tableau avec var_dump.

PHP
<?php
   $tableau = array();
   $i = 0;
   while($i < 10) {
      $tableau[] = rand(0, 50);
      $i++;	  
   }
   if(in_array(42, $tableau))
      echo 'Le nombre 42 est bien dans le tableau.';
   else
      echo 'Le tableau ne contient pas la valeur 42.';
   echo '<br />';  
   var_dump($tableau);
?>
Résultat
Le nombre 42 est bien dans le tableau.
array(10) { [0]=> int(0) [1]=> int(28) [2]=> int(42) [3]=> int(1) [4]=> int(49) [5]=> int(1) [6]=> int(10) [7]=> int(9) [8]=> int(2) [9]=> int(39) }

Exercice 15

En utilisant la fonction rand(), remplir un tableau avec 10 nombres aléatoires. Puis, trier les valeurs dans deux tableaux distincts. Le premier contiendra les valeurs inférieures à 50 et le second contiendra les valeurs supérieures ou égales à 50. Enfin, afficher le contenu des deux tableaux.

PHP
<?php
   $tableau = array();
   $tableau1 = array();
   $tableau2 = array();
   $i = 0;
   while($i < 10) {
      $tableau[] = rand(0, 100);
      $i++;	  
   }
   foreach($tableau as $t) {
      if($t < 50) {
         $tableau1[] = $t;
      } else {
         $tableau2[] = $t;		  
      }
   }
   
   echo 'Tableau 1 : ';
   foreach($tableau1 as $t1) {
      echo $t1.' ';
   }
   
   echo '<br />Tableau 2 : ';
   foreach($tableau2 as $t2) {
      echo $t2.' ';
   }
?>
Résultat
Tableau 1 : 30 5 46 39 37 16
Tableau 2 : 55 84 57 84

Exercice 16

En utilisant le tableau ci-dessous, afficher seulement les pays qui ont une population supérieure ou égale à 20 millions d'habitants.

PHP
<?php
   $pays_population = array(
      'France' => 67595000,
      'Suede' => 9998000,
      'Suisse' => 8417000,
      'Kosovo' => 1820631,
      'Malte' => 434403,
      'Mexique' => 122273500,
      'Allemagne' => 82800000,
   );
?>

PHP
<?php
   $pays_population = array(
      'France' => 67595000,
      'Suede' => 9998000,
      'Suisse' => 8417000,
      'Kosovo' => 1820631,
      'Malte' => 434403,
      'Mexique' => 122273500,
      'Allemagne' => 82800000,
   );
   echo '<p>Les pays suivants ont une population supérieure à 20 millions d\'habitants.</p><ul>';
   foreach($pays_population as $pays => $population) {
      if($population >= 20000000) {
	     echo '<li>'.$pays.'</li>';
      }
   }
   echo '</ul>';
?>
Résultat

Les pays suivants ont une population supérieure à 20 millions d'habitants.

  • France
  • Mexique
  • Allemagne

Exercice 17

En utilisant le tableau ci-dessous, compter le nombre d'éléments du tableau.

PHP
<?php
   $pays_population = array(
      'France' => 67595000,
      'Suede' => 9998000,
      'Suisse' => 8417000,
      'Kosovo' => 1820631,
      'Malte' => 434403,
      'Mexique' => 122273500,
      'Allemagne' => 82800000,
   );
?>

PHP
<?php
   $pays_population = array(
      'France' => 67595000,
      'Suede' => 9998000,
      'Suisse' => 8417000,
      'Kosovo' => 1820631,
      'Malte' => 434403,
      'Mexique' => 122273500,
      'Allemagne' => 82800000,
   );
   
   echo 'Il y a '.count($pays_population).' éléments dans le tableau.';
?>
Résultat
Il y a 7 éléments dans le tableau.

Exercice 18

Quelle syntaxe permet d'afficher le deuxième élément du tableau $cocktails ?

PHP
<?php
   $cocktails = array('Mojito', 'Long Island Iced Tea', 'Gin Fizz', 'Moscow mule');
?>

PHP
<?php
   $cocktails = array('Mojito', 'Long Island Iced Tea', 'Gin Fizz', 'Moscow mule');
   echo $cocktails[1];
?>
Résultat
Long Island Iced Tea

Exercice 19

Quelle syntaxe permet d'afficher l'âge de Manuel ?

PHP
<?php
   $personnes = array(
      'Jean' => 16,
      'Manuel' => 19,
      'André' => 66
   );
?>

PHP
<?php
   $personnes = array(
      'Jean' => 16,
      'Manuel' => 19,
      'André' => 66
   );
   echo 'Manuel a '.$personnes['Manuel'].' ans.';
?>
Résultat
Manuel a 19 ans.