Cosa significa "=>" in PHP?


98

Cosa significa l' =>operatore nel codice seguente?

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

Il codice è un commento su PHP.net. L'utente non specifica il valore di $user_list, $usero $pass. Normalmente vedo che =>significa uguale o maggiore di.

Tuttavia, non sono sicuro del suo scopo qui perché non è assegnato. Ho letto il codice come

  1. elaborare un elenco di utenti in numeri interi
  2. tale che il valore di ogni utente sia uguale o maggiore della password

Quanto sopra non ha senso per me.


Ho aggiornato la mia risposta, ho dimenticato la parola chiave "array".
Tyler Carter


@Masi Mistake dalla mia parte. Scusate.
kapa

Direi che => assegna un valore all'array e usa una chiave come indice. Quindi nel tuo caso, l'array che chiami $ user_list usa $ user come chiave di indice. Il ciclo foreach esegue un ciclo e assegna a ogni elemento di quell'array il valore $ pass.
Julian

Risposte:


125

=>è il separatore per gli array associativi. Nel contesto di quel ciclo foreach, assegna la chiave dell'array a $usere il valore a $pass.

Esempio:

$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"

Si noti che questo può essere utilizzato anche per array indicizzati numericamente.

Esempio:

$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

22

Significa assegnare la chiave a $ user e la variabile a $ pass

Quando assegni un array, lo fai in questo modo

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

Utilizza lo stesso simbolo per elaborare gli array nelle istruzioni foreach. "=>" Collega la chiave e il valore.

Secondo il manuale PHP , "=>" creava coppie chiave / valore.

Inoltre, uguale o maggiore di è il modo opposto: '> ='. In PHP il segno maggiore o minore di va sempre per primo: '> =', '<='.

E proprio come nota a margine, escludendo il secondo valore non funziona come pensi che sarebbe. Invece di darti solo la chiave, in realtà ti dà solo un valore:

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

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

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

1
Il tuo ultimo esempio ha qualcosa che non va, poiché ricevo il messaggio di errore Parse error: syntax error, unexpected T_DOUBLE_ARROW in /var/www/cha.php on line 2.
Léo Léopold Hertz 준영

Ops Hai dimenticato di aggiungere la parola chiave array. Provalo
Tyler Carter

12

Codice come "a => b" significa, per un array associativo (alcuni linguaggi, come Perl , se non ricordo male, li chiamano "hash") , che 'a' è una chiave e 'b' un valore.

Potresti voler dare un'occhiata alla documentazione di, almeno:

Qui, stai avendo un array, chiamato $user_list, e itererai su di esso, ottenendo, per ogni riga, la chiave della riga in $usere il valore corrispondente in $pass.

Ad esempio, questo codice:

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

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

Otterrai questo output:

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

(Sto usando var_dumpper generare un bel output, che facilita il debug; per ottenere un output normale, useresti echo)


"Uguale o maggiore" è il contrario intorno: "maggiore o uguale", che è scritto, in PHP, in questo modo; "> ="
La stessa cosa per la maggior parte dei linguaggi derivati ​​da C: C ++, JAVA, PHP, ...


Un consiglio: se stai appena iniziando con PHP, dovresti assolutamente dedicare un po 'di tempo (forse un paio d'ore, forse anche mezza giornata o anche un'intera giornata) a leggere alcune parti del manuale :-)
E' d aiutarti molto!


6

Un array in PHP è una mappa di chiavi per valori:

$array = array();
$array["yellow"] = 3;
$array["green"] = 4;

Se vuoi fare qualcosa con ciascuna coppia chiave-valore nel tuo array, puoi utilizzare la foreachstruttura di controllo:

foreach ($array as $key => $value)

La variabile $ array è l'array che utilizzerai. Le variabili $ key e $ value conterranno una coppia chiave-valore in ogni iterazione del foreachciclo. In questo esempio, conterranno prima "giallo" e 3, quindi "verde" e 4.

Puoi usare una notazione alternativa se non ti interessano le chiavi:

foreach ($array as $value)

"Foreach" è davvero un operatore? Hai una fonte?
Peter Mortensen

Tecnicamente parlando, è una struttura di controllo: php.net/manual/en/control-structures.foreach.php Ho aggiornato la risposta di conseguenza.
Scharrels,

4

Gli array in PHP sono array associativi (altrimenti noti come dizionari o hash) per impostazione predefinita. Se non assegni esplicitamente una chiave a un valore, l'interprete lo farà silenziosamente per te. Quindi, l'espressione che hai lassù scorre $user_list, rendendo la chiave disponibile come $usere il valore disponibile come $passvariabili locali nel corpo del file foreach.


3

$user_list è un array di dati che, una volta eseguito il loop, può essere suddiviso in nome e valore.

In questo caso il suo nome è $usere il suo valore è $pass.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.