2009-08-06 9 views
83

Co oznacza operator => w poniższym kodzie?Co oznacza "=>" w PHP?

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

Kod jest komentarzem na stronie PHP.net. Użytkownik nie określa wartości $user_list, $user lub $ pass. Zazwyczaj widzę, że => oznacza równy lub większy niż.

Jednak nie jestem pewien co do jego celu tutaj, ponieważ nie jest on przypisany. mogę odczytać kodu jako

  1. procesu listę użytkowników w całkowitych
  2. takie, że wartość każdego użytkownika jest równa lub większa niż hasło

Powyższe nie ma sensu do mnie.

+0

zaktualizowałem moją odpowiedź, zapomniałem słowa kluczowego "tablica". –

+0

Powiązane: http://stackoverflow.com/questions/4758791/what-does-k-v-in-foreachex-as-k-v-mean –

+0

@Masi Błąd po mojej stronie. Przepraszam. – kapa

Odpowiedz

105

=> jest separator do asocjacyjnych. W kontekście tej pętli foreach przypisuje klucz tablicy do $user, a wartość do $pass.

przykład:

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

Należy zauważyć, że może być stosowany do liczbowo tablic indeksowanych też.

przykład:

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

Oznacza to przypisać klucz do $ użytkownika i zmienną $ przechodzą

Po przypisaniu tablicę, to zrobić jak ten

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

używa tego samego symbolu dla tablic przetwórczych w foreach sprawozdania. '=>' Łączy klucz i wartość.

Zgodnie z PHP Manual utworzonych par klucz/wartość "=>".

Również, równy lub większy niż w odwrotny sposób: "> =". W PHP znak większy lub mniejszy zawsze idzie najpierw: '> =', '< ='.

I tak na marginesie, z wyłączeniem drugiej wartości nie działa tak, jak myślisz, że tak. Zamiast tylko daje klucz, to faktycznie daje tylko wartość:

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

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

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

Twój ostatni przykład ma coś nie tak, ponieważ pojawia się komunikat o błędzie "Błąd analizy: błąd składni, nieoczekiwany T_DOUBLE_ARROW w /var/www/cha.php na linii 2". –

+0

Ooops Nie pamiętam, aby dodać słowo kluczowe Array. Wypróbuj –

3

$user_list jest szereg danych, które, gdy przelotowe można rozdzielić na jego nazwę i wartości.

W tym przypadku jego nazwa to $user, a jego wartość to $pass.

4

Tablice w PHP są domyślnie tablicami asocjacyjnymi (zwanymi również słownikami lub hasłami). Jeśli nie przypisujesz jawnie klucza do wartości, interpreter zrobi to po cichu.Wyrażenie, które tam masz, przechodzi przez $user_list, dzięki czemu klucz jest dostępny jako $user, a wartość dostępna jako $pass jako zmienne lokalne w treści foreach.

11

Kod jak "A => B" oznacza na tablicy asocjacyjnej (niektóre języki, jak Perl, jeśli dobrze pamiętam, nazywamy tych "hash"), że 'a' jest kluczem, a „b ' wartość.

Czasami warto spojrzeć na dokumentacje, co najmniej:

Tutaj masz tablicę, zwany $user_list i będziesz iteruj nad nim, uzyskując dla każdej linii klucz linii w $user i odpowiednią wartość w $pass.

Na przykład, ten kod:

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

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

będzie Ci to wyjście:

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

(używam var_dump generować ładne wyjście, które ułatwia debuging, aby uzyskać normalne wyjście, możesz użyć echo)


"Równy lub większy" jest odwrotnie: "większy lub równy", który jest napisany, w PHP, w ten sposób; „> =”
samo dla większości języków wywodzących się z C: C++, Java, PHP, ...


Jako radę: Jeśli dopiero zaczynasz z PHP, powinno się wydać kilka czas (może kilka godzin, może nawet pół dnia lub nawet cały dzień) przeglądając niektóre części instrukcji :-)
To by ci bardzo pomogło!

6

Tablica w PHP jest mapa z kluczy do wartości:

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

Jeśli chcesz coś zrobić z każdego klucz-wartość-pair w swojej tablicy, można użyć struktury foreach sterowania:

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

Zmienna $ tablica jest tablicą, której będziesz używać. Zmienne $ key i $ będą zawierały parę klucz-wartość w każdej iteracji pętli foreach. W tym przykładzie, będą one zawierać pierwszy „żółty” i 3, po czym „zielony” i 4.

Można użyć alternatywnego zapisu, jeśli nie obchodzi kluczy:

foreach ($array as $value) 
+0

Czy "foreach" jest naprawdę operatorem? Czy masz źródło? –

+0

Technicznie rzecz biorąc, jest to struktura kontrolna: http://php.net/manual/en/control-structures.foreach.php Zaktualizowałem odpowiedź odpowiednio. – Scharrels