Bonjour à vous tous,
On est bien d'accord que lorsqu'on déclare une variable en PHP (ou tout autre langage de programmation), la valeur de cette affectation est rangée dans la RAM de l'ordinateur. Et si on déclare à nouveau cette même variable contenant une autre valeur, cette deuxième déclaration remplace la première.
Voici un cas concret :
Si je déclare une variable $nombre = 5 et qu'à l'instruction suivante je déclare la même variable $nombre = $nombre + 1, en toute logique la variable $nombre = 5 (la première déclaration) sera écrasée et remplacée par elle même avec la valeur 1 en plus. Donc, la deuxième ligne d'instruction ne peut pas être exécutée puisque la variable $nombre = 5 n'existe plus une fois l'instruction suivante exécutée, remplacée par $nombre = $nombre + 1.
Est-ce qu'il n'aurait pas fallu plutôt écrire, pour éviter la confusion :
Mais toujours est-il qu'en conservant le même nom de variable, cela fonctionne et le navigateur me renvoie le résultat 6 à l'instruction echo. Ce n'est pas un casse-tête chinois ?
Modifié par ObiJuanKenobi (29 Mar 2022 - 07:19)
On est bien d'accord que lorsqu'on déclare une variable en PHP (ou tout autre langage de programmation), la valeur de cette affectation est rangée dans la RAM de l'ordinateur. Et si on déclare à nouveau cette même variable contenant une autre valeur, cette deuxième déclaration remplace la première.
Voici un cas concret :
Si je déclare une variable $nombre = 5 et qu'à l'instruction suivante je déclare la même variable $nombre = $nombre + 1, en toute logique la variable $nombre = 5 (la première déclaration) sera écrasée et remplacée par elle même avec la valeur 1 en plus. Donc, la deuxième ligne d'instruction ne peut pas être exécutée puisque la variable $nombre = 5 n'existe plus une fois l'instruction suivante exécutée, remplacée par $nombre = $nombre + 1.
Est-ce qu'il n'aurait pas fallu plutôt écrire, pour éviter la confusion :
$number1 = 5;
$number2 = $number1 + 1;*/
echo $number2;
Mais toujours est-il qu'en conservant le même nom de variable, cela fonctionne et le navigateur me renvoie le résultat 6 à l'instruction echo. Ce n'est pas un casse-tête chinois ?
Modifié par ObiJuanKenobi (29 Mar 2022 - 07:19)