PHP'de “=>” ne anlama geliyor?


99

=>Aşağıdaki kodda operatör ne anlama geliyor?

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

Kod, PHP.net'te bir yorumdur. Kullanıcı $user_list, $userveya değerini belirtmez $pass. Normalde bunun =>eşit veya daha büyük anlamına geldiğini görüyorum .

Ancak buradaki amacından emin değilim çünkü atanmamış. Kodu şu şekilde okudum

  1. tam sayıdaki kullanıcıların listesini işle
  2. öyle ki her bir kullanıcının değeri parolaya eşit veya paroladan daha büyük

Yukarıdakiler bana mantıklı gelmiyor.


Cevabımı güncelledim, 'dizi' anahtar kelimesini unuttum.
Tyler Carter


@Masi Hata benim tarafımda. Afedersiniz.
kapa

=> Diziye bir değer atar ve dizin olarak bir anahtar kullanır derim. Yani sizin durumunuzda, $ user_list adını verdiğiniz dizi, dizin anahtarı olarak $ user kullanıyor. Foreach döngüsü döngüler ve bu dizideki her öğeye $ pass değerini atar.
Julian

Yanıtlar:


126

=>ilişkilendirilebilir diziler için ayırıcıdır. Bu foreach döngüsü bağlamında, dizinin anahtarını 'a $userve değerini' e atar $pass.

Misal:

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

Bunun sayısal olarak indekslenmiş diziler için de kullanılabileceğini unutmayın.

Misal:

$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

Bu, anahtarı $ user'a ve değişkeni $ pass'a atamak anlamına gelir.

Bir dizi atadığınızda, bunu böyle yaparsınız

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

Foreach ifadelerindeki dizileri işlemek için aynı sembolü kullanır. '=>' Anahtarı ve değeri birbirine bağlar.

PHP Kılavuzuna göre , '=>' anahtar / değer çiftlerini oluşturdu.

Ayrıca, Eşit veya Büyüktür tam tersidir: '> ='. PHP'de büyük veya küçüktür işareti her zaman önce gelir: '> =', '<='.

Ve bir yan not olarak, ikinci değeri hariç tutmak düşündüğünüz gibi çalışmaz. Size yalnızca anahtarı vermek yerine, aslında yalnızca bir değer verir:

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

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

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

1
Hata mesajını aldığım için son örneğinizde bir sorun var Parse error: syntax error, unexpected T_DOUBLE_ARROW in /var/www/cha.php on line 2.
Léo Léopold Hertz 준영

Ooops Dizi Anahtar Sözcüğünü eklemeyi unuttum. Deneyin
Tyler Carter

12

"A => b" gibi bir kod, ilişkilendirilebilir bir dizi için ( Perl gibi bazı diller, doğru hatırlıyorsam bunlara "karma" deyin) , 'a' bir anahtar ve 'b' bir değer anlamına gelir.

En azından aşağıdakilerin belgelerine bir göz atmak isteyebilirsiniz:

Burada, çağrılan bir diziniz var $user_listve her satır için, satırın anahtarını $userve içindeki karşılık gelen değeri alarak üzerinde yineleyeceksiniz $pass.

Örneğin, bu kod:

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

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

Size bu çıktıyı alacak:

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

( var_dumpHata ayıklamayı kolaylaştıran güzel bir çıktı oluşturmak için kullanıyorum ; normal bir çıktı elde etmek için kullanırsınız echo)


"Eşit veya daha büyük" diğer yoldur: PHP'de şöyle yazılan "daha büyük veya eşittir"; "> ="
C: C ++, JAVA, PHP, ... 'den türetilen çoğu dil için aynı şey


Bir tavsiye gibi: sadece PHP ile başlayan iseniz, kesinlikle biraz zaman harcamak gerekir (saat belki birkaç, hatta belki de yarım gün hatta bütün gün) manuel bazı bölgelerinde geçiyor :-)
O' Sana çok yardım et!


6

PHP'de bir dizi, değerlerin anahtarlarının bir eşlemidir:

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

Dizinizdeki her bir anahtar / değer çiftiyle bir şeyler yapmak istiyorsanız, foreachkontrol yapısını kullanabilirsiniz :

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

$ Dizi değişkeni, kullanacağınız dizidir. $ Anahtar ve $ değer değişkenleri, foreachdöngünün her yinelemesinde bir anahtar / değer çifti içerir . Bu örnekte, önce "sarı" ve 3, ardından "yeşil" ve 4'ü içereceklerdir.

Anahtarları umursamıyorsanız alternatif bir gösterim kullanabilirsiniz:

foreach ($array as $value)

"Foreach" gerçekten bir operatör mü? Kaynağınız var mı?
Peter Mortensen

Teknik olarak konuşursak, bu bir kontrol yapısıdır: php.net/manual/en/control-structures.foreach.php Cevabı buna göre güncelledim.
Scharrels

4

PHP'deki diziler varsayılan olarak ilişkilendirilebilir dizilerdir (aksi takdirde sözlükler veya karmalar olarak bilinir). Bir değere açıkça bir anahtar atamazsanız, yorumlayıcı bunu sizin için sessizce yapacaktır. Yani, içinden orada yineler kadar var ifadesi $user_listgibi anahtar kullanılabilir hale $usergibi mevcut değer $passgövdesinde lokal değişkenler olarak foreach.


3

$user_list döngü halinde olduğunda ismine ve değerine bölünebilen bir veri dizisidir.

Bu durumda adı $userve değeri $pass.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.