Salux à tous !

Je suis en auto-apprentissage avec un projet personnel et je pèche sur un point, dont je ne comprends pas pourquoi cela ne fonctionne pas.

Voici l'erreur que j'ai actuellement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
PHP Notice: Undefined index: age in /home/****/public_html/test.php on line 48
Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
  // Mon JSON avec un manque en [2] car il n'y a pas l'age
  $json = '{
   "participants":[
      {
         "nom":"ADORABLE",
         "num":1,
         "age":5,
         "sexe":"HONGRES"
      },
      {
         "nom":"BRISE",
         "num":2,
         "age":6,
         "sexe":"MALES"
      },
      {
         "nom":"TARTE",
         "num":3,
         "sexe":"FEMMES"
      },
      {
         "nom":"FRAISE",
         "num":4,
         "age":4,
         "sexe":"MALES"
      }
   ]
}';
  // Décodage du JSON en mode array
  $json_tableau = json_decode($json,true);
  // Déclaration de la variable de mise en page
  $output = "";
  // fonction qui contrôle si la variable est définit
  function var_controle($a)
  {
    if (isset($a)) {
      $b = $a;
    }else {
      $b = "nc";
    }
    return $b;
  }
  // Boucle de mise en page
  foreach ($json_tableau['participants'] as $tableau) {
    $output .= "<h1>".var_controle($tableau['num'])."</h1>";
    $output .= "<h2>".var_controle($tableau['nom'])."</h2>";
    $output .= "<h2>".var_controle($tableau['age'])."</h2>";
    $output .= "<h2>".var_controle($tableau['sexe'])."</h2>";
  }
  // Affiche de la mise en page
  echo $output;
?>
Je sais que si je ne fait pas de fonction var_controle, mais un contrôle sur chacun des variables, je n'ai plus de problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
// Boucle de mise en page
  foreach ($json_tableau['participants'] as $tableau) {
    $output .= "<h1>".var_controle($tableau['num'])."</h1>";
    $output .= "<h2>".var_controle($tableau['nom'])."</h2>";
    if (isset($tableau['age'])) {
      $age = $tableau['age'];
    }else {
      $age = "nc";
    }
    $output .= "<h2>".$age."</h2>";
    $output .= "<h2>".var_controle($tableau['sexe'])."</h2>";
Pourquoi ma fonction ne fonctionne pas ?

Cordialement,
GaLaGaNN