Menu
Coddy logo textTech

Portée des variables

Fait partie de la section Fondamentaux du Journey PHP de Coddy. Leçon 67 sur 71.

Les variables créées à l’intérieur d’une fonction sont complètement distinctes des variables qui se trouvent en dehors de celle-ci. Ce concept s’appelle la portée des variables, et le comprendre permet d’éviter des bugs déroutants dans votre code.

Une variable définie à l’intérieur d’une fonction n’existe que dans cette fonction. On l’appelle une variable locale :

<?php
function sayHi() {
    $message = "Hello!";
    echo $message;
}

sayHi();
echo $message; // Erreur : $message n'existe pas ici
?>

La variable $message est créée à l’intérieur de sayHi() et disparaît lorsque la fonction se termine. Essayer d’y accéder depuis l’extérieur provoque une erreur.

De même, les variables définies en dehors d’une fonction ne sont pas automatiquement disponibles à l’intérieur de celle-ci :

<?php
$name = "Alice";

function greet() {
    echo $name; // Erreur : $name n'est pas défini à l'intérieur de cette fonction
}

greet();
?>

Bien que $name existe dans le code principal, la fonction ne peut pas le voir. Pour utiliser des valeurs externes dans une fonction, transmettez-les en tant que paramètres : c’est l’approche propre et recommandée que vous avez déjà apprise.

Cette séparation est en fait utile. Cela signifie que les fonctions ne modifieront pas accidentellement les variables dans d’autres parties de ton programme, ce qui rend ton code plus prévisible et plus facile à déboguer.

challenge icon

Défi

Facile

Lisez deux lignes d’entrée :

  1. Le nom d’une personne (par ex., Alice)
  2. Un montant de prime sous forme de nombre entier (par ex., 50)

Créez une fonction appelée calculateBonus qui accepte deux paramètres : $name (chaîne) et $bonus (entier).

À l’intérieur de la fonction :

  • Créez une variable locale $baseSalary et définissez-la sur 1000
  • Calculez la rémunération totale en additionnant $baseSalary et $bonus
  • Renvoyez une chaîne au format suivant : [name] earns [total]

Appelez la fonction avec les valeurs saisies et affichez le résultat renvoyé.

Exemple 1 :

Si les entrées sont Alice et 50, la sortie doit être :

Alice earns 1050

Exemple 2 :

Si les entrées sont Bob et 200, la sortie doit être :

Bob earns 1200

Exemple 3 :

Si les entrées sont Emma et 0, la sortie doit être :

Emma earns 1000

Essayez vous-même

<?php
// Lire l'entrée
$name = trim(fgets(STDIN));
$bonus = intval(fgets(STDIN));

// TODO: Créer la fonction calculateBonus ci-dessous
// - Elle doit accepter $name (string) et $bonus (int) comme paramètres
// - Créer une variable locale $baseSalary initialisée à 1000
// - Calculer le salaire total et retourner "[name] earns [total]"



// Appeler la fonction et afficher le résultat
echo calculateBonus($name, $bonus);
?>
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux

Entraînez-vous par vous-même : Compilateur PHP en ligne