Comment puis-je initialiser plusieurs variables PHP avec une valeur de zéro simultanément ? sans utiliser un tableau ? Je souhaite écrire un code qui soit essentiellement équivalent à ce qui suit :
$first = 0;
$second = 0;
$third = 0;
$fourth = 0;
Comment puis-je initialiser plusieurs variables PHP avec une valeur de zéro simultanément ? sans utiliser un tableau ? Je souhaite écrire un code qui soit essentiellement équivalent à ce qui suit :
$first = 0;
$second = 0;
$third = 0;
$fourth = 0;
Cela ne pose-t-il pas le problème suivant : lorsque vous modifiez le quatrième dollar, vous modifiez également le reste ?
Si vous changez $fourth
vous ne changerez pas le reste, parce que 0
est une valeur, pas une référence. Si vous aviez fait quelque chose comme $fourth = 0; $third = &$fourth; $second = &$fourth; $first = &$fourth
alors toutes les autres variables seraient des références à $fourth
(pas la valeur 0
), et en modifiant $fourth
se refléterait également dans les autres variables.
Cette affectation multiple fonctionne car, en PHP, l'affectation est une expression qui renvoie la valeur affectée. Ainsi, $fourth = 0
est une expression qui renvoie la valeur 0
. Cette valeur est ensuite affectée à $third
et, puisque cette affectation est également une expression, la valeur de retour de l'affectation de 0
a $third
est à nouveau la valeur 0
etc.
Bien qu'il soit possible d'initialiser plusieurs variables en utilisant un opérateur virgule dans une boucle for, comme suit :
<?php
for ($a=0,$b=0,$c=0,$d=0;;) {
break;
}
var_dump($a,$b,$c,$d);
(Voir la démo ici )
le site liste offre un moyen plus efficace d'effectuer une affectation de variables multiples, comme le montre l'exemple suivant :
<?php
list( $first, $second, $third, $fourth ) = array( 0, 0, 0, 0 );
var_dump($first, $second, $third, $fourth );
Voir la démo ici
On peut souhaiter reconsidérer l'utilisation des tableaux pour obtenir des variables initialisées multiples. Avec PHP7.1+, on peut écrire du code plus simple et plus robuste si on utilise déstructuration des tableaux disponible avec une syntaxe de tableau court, comme suit :
<?php
[$first, $second, $third, $fourth ] = [0, 0, 0, 0];
var_dump($first, $second, $third, $fourth );
Voir la démo ici .
Si l'on a besoin d'être certain que les variables initialisées n'ont pas été précédemment définies, voir ce qui suit discussion en particulier ceci réponse .
Si vous voulez initialiser plusieurs variables de tableau, utilisez alors
# Initialize multiple array variables with Empty values
$array_1 = $array_2 = $array_3 = array();
# Initialize multiple array variables with Some values in it
list( $array_1, $array_2, $array_3) = array('one','two','three');
# Print value of array variables
var_dump($array_1,$array_2,$array_3);
Output:
*******
string 'one' (length=3)
string 'two' (length=3)
string 'three' (length=5)
Si vous voulez initialiser plusieurs variables régulières, utilisez alors
# Initialize multiple regular variables with values
$a = $b = $c = 'Hello PHP';
echo $a.'<br>',$b.'<br>', $c.'<br>';
Output:
*******
Hello PHP
Hello PHP
Hello PHP
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
Duplicata possible de Attribuer la même valeur à plusieurs variables