110 votes

Que signifie "=>" en PHP ?

Que fait le => signifie-t-il dans le code suivant ?

foreach ($user_list as $user => $pass)

Le code est un commentaire de PHP.net. L'utilisateur ne spécifie pas la valeur de $user_list , $user o $pass . Je vois normalement que => signifie égal ou supérieur à.

Cependant, je ne suis pas sûr de son utilité ici car il n'est pas attribué. Je lis le code comme suit

  1. traiter une liste d'utilisateurs en nombres entiers
  2. de telle sorte que la valeur de chaque utilisateur soit égale ou supérieure au mot de passe

Ce qui précède n'a pas de sens pour moi.

0 votes

J'ai mis à jour ma réponse, j'ai oublié le mot clé 'array'.

0 votes

0 votes

@Masi Erreur de ma part. Désolé.

135voto

hobodave Points 14566

=> est le séparateur pour les tableaux associatifs. Dans le contexte de cette boucle foreach, il assigne la clé du tableau à $user et la valeur à $pass .

Ejemplo:

$user_list = array(
    'dave' => 'apassword',
    'steve' => 'secr3t'
);

foreach ($user_list as $user => $pass) {
    echo "{$user}'s pass is: {$pass}\n";
}
// Prints: 
// "dave's pass is: apassword"
// "steve's pass is: secr3t"

Notez que cela peut également être utilisé pour les tableaux indexés numériquement.

Ejemplo:

$foo = array('car', 'truck', 'van', 'bike', 'rickshaw');
foreach ($foo as $i => $type) {
    echo "{$i}: {$type}\n";
}
// prints:
// 0: car
// 1: truck
// 2: van
// 3: bike
// 4: rickshaw

27voto

Tyler Carter Points 30030

Cela signifie que la clé est attribuée à $user et la variable à $pass.

Lorsque vous assignez un tableau, vous le faites comme ceci

$array = array("key" => "value");

Il utilise le même symbole pour traiter les tableaux dans les instructions foreach. Le '=>' relie la clé et la valeur.

Selon le Manuel PHP le "=>" crée des paires clé/valeur.

De même, les termes "égal" ou "supérieur" sont inversés : ">=". En PHP, le signe supérieur ou inférieur est toujours placé en premier : ">=", "<=".

Et juste à titre d'information, l'exclusion de la deuxième valeur ne fonctionne pas comme vous le pensez. Au lieu de vous donner seulement la clé, il vous donne en fait seulement une valeur :

$array = array("test" => "foo");

foreach($array as $key => $value)
{
    echo $key . " : " . $value; // Echoes "test : foo"
}

foreach($array as $value)
{
    echo $value; // Echoes "foo"
}

1 votes

Votre dernier exemple a quelque chose d'erroné, puisque j'obtiens le message d'erreur Parse error: syntax error, unexpected T_DOUBLE_ARROW in /var/www/cha.php on line 2 .

0 votes

Ooops J'ai oublié d'ajouter le mot-clé Array. Essayez cela

13voto

Pascal MARTIN Points 195780

Un code comme "a => b" signifie, pour un tableau associatif (certaines langues, comme Perl si je me souviens bien, on les appelle "hash") que "a" est une clé, et "b" une valeur.

Vous pourriez vouloir jeter un coup d'oeil aux documentations de, au moins :

Ici, vous avez un tableau, appelé $user_list et vous le parcourrez en obtenant, pour chaque ligne, la clé de la ligne dans le fichier $user et la valeur correspondante dans $pass .

Par exemple, ce code :

$user_list = array(
    'user1' => 'password1',
    'user2' => 'password2',
);

foreach ($user_list as $user => $pass)
{
    var_dump("user = $user and password = $pass");
}

Je vous obtiendrai cette sortie :

string 'user = user1 and password = password1' (length=37)
string 'user = user2 and password = password2' (length=37)

_(J'utilise var_dump pour générer une belle sortie, qui facilite le débogage ; pour obtenir une sortie normale, on utilise echo )_

"Égal ou supérieur" est l'inverse : "plus grand ou égal", qui s'écrit, en PHP, comme ceci : ">=".
La même chose pour la plupart des langages dérivés du C : C++, JAVA, PHP, ...

Comme un conseil : Si vous débutez avec PHP, vous devriez certainement passer un peu de temps (peut-être quelques heures, peut-être même une demi-journée ou une journée entière) en parcourant certaines parties du manuel :-)
Cela vous aiderait beaucoup !

5voto

Les tableaux en PHP sont des tableaux associatifs (autrement connus sous le nom de dictionnaires ou de hachages) par défaut. Si vous n'assignez pas explicitement une clé à une valeur, l'interpréteur le fera silencieusement pour vous. Donc, l'expression que vous avez là itère à travers $user_list ce qui rend la clé disponible sous la forme $user et la valeur disponible comme $pass en tant que variables locales dans le corps du fichier foreach .

3voto

Mizu Points 217

$user_list est un tableau de données qui, lorsqu'il est parcouru en boucle, peut être divisé en son nom et sa valeur.

Dans ce cas, il s'agit de $user et sa valeur est $pass .

Prograide.com

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.

Powered by:

X