Apa arti “=>” dalam PHP?

98

Apa yang dimaksud =>operator dalam kode berikut?

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

Kode tersebut adalah komentar di PHP.net. Pengguna tidak menentukan nilai $user_list, $useratau $pass. Saya biasanya melihat bahwa =>artinya sama atau lebih besar dari.

Namun, saya tidak yakin tentang tujuannya di sini karena tidak ditetapkan. Saya membaca kode sebagai

  1. memproses daftar pengguna dalam bilangan bulat
  2. sedemikian rupa sehingga nilai setiap pengguna sama atau lebih besar dari kata sandi

Hal di atas tidak masuk akal bagi saya.

Léo Léopold Hertz 준영
sumber
Saya memperbarui jawaban saya, lupa kata kunci 'array'.
Tyler Carter
@Masi Kesalahan di sisi saya. Maaf.
kapa
Saya akan mengatakan => memberikan nilai ke array dan menggunakan kunci sebagai indeks. Jadi dalam kasus Anda, array yang Anda panggil $ user_list menggunakan $ user sebagai kunci indeks. Perulangan foreach mengulang dan menetapkan ke setiap elemen dalam larik nilai $ pass.
Julian

Jawaban:

125

=>adalah pemisah untuk array asosiatif. Dalam konteks perulangan foreach itu, itu menetapkan kunci dari array ke $userdan nilainya ke $pass.

Contoh:

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

Perhatikan bahwa ini juga dapat digunakan untuk array yang diindeks secara numerik.

Contoh:

$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
hobodave
sumber
22

Ini berarti menetapkan kunci ke $ user dan variabel ke $ pass

Saat Anda menetapkan sebuah array, Anda melakukannya seperti ini

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

Ini menggunakan simbol yang sama untuk memproses array dalam pernyataan foreach. '=>' Menautkan kunci dan nilainya.

Menurut Manual PHP , '=>' pasangan kunci / nilai yang dibuat.

Juga, Sama atau Lebih Besar dari adalah kebalikannya: '> ='. Dalam PHP, tanda yang lebih besar atau lebih kecil dari selalu menjadi yang pertama: '> =', '<='.

Dan hanya sebagai catatan tambahan, mengecualikan nilai kedua tidak berfungsi seperti yang Anda kira. Alih-alih hanya memberi Anda kuncinya, Ini sebenarnya hanya memberi Anda nilai:

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

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

foreach($array as $value)
{
    echo $value; // Echoes "foo"
}
Tyler Carter
sumber
1
Contoh terakhir Anda ada yang salah, karena saya mendapatkan pesan kesalahan Parse error: syntax error, unexpected T_DOUBLE_ARROW in /var/www/cha.php on line 2.
Léo Léopold Hertz 준영
Ups Lupa menambahkan Kata Kunci Array. Cobalah
Tyler Carter
12

Kode seperti "a => b" berarti, untuk array asosiatif (beberapa bahasa, seperti Perl , jika saya ingat dengan benar, panggil itu "hash") , bahwa 'a' adalah kunci, dan 'b' nilai.

Anda mungkin ingin melihat dokumentasi, setidaknya:

Di sini, Anda memiliki sebuah array, dipanggil $user_list, dan Anda akan mengulanginya, mendapatkan, untuk setiap baris, kunci dari baris masuk $user, dan nilai yang sesuai di $pass.

Misalnya, kode ini:

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

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

Akan memberi Anda output ini:

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

(Saya menggunakan var_dumpuntuk menghasilkan keluaran yang bagus, yang memfasilitasi debuging; untuk mendapatkan keluaran normal, Anda akan menggunakan echo)


"Sama atau lebih besar" adalah sebaliknya: "lebih besar atau sama", yang ditulis, dalam PHP, seperti ini; "> ="
Hal yang sama untuk kebanyakan bahasa yang diturunkan dari C: C ++, JAVA, PHP, ...


Sebagai saran: Jika Anda baru memulai dengan PHP, Anda harus meluangkan waktu (mungkin beberapa jam, bahkan mungkin setengah hari atau bahkan sepanjang hari) untuk membaca beberapa bagian manual :-)
It ' d banyak membantu Anda!

Pascal MARTIN
sumber
6

Array dalam PHP adalah peta kunci ke nilai:

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

Jika Anda ingin melakukan sesuatu dengan setiap key-value-pair dalam array Anda, Anda dapat menggunakan foreachstruktur kontrol:

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

Variabel $ array adalah array yang akan Anda gunakan. Variabel $ key dan $ value akan berisi key-value-pair di setiap iterasi foreachloop. Dalam contoh ini, pertama akan berisi "kuning" dan 3, lalu "hijau" dan 4.

Anda dapat menggunakan notasi alternatif jika Anda tidak peduli dengan kunci:

foreach ($array as $value)
Scharrels
sumber
Apakah "foreach" benar-benar seorang operator? Apakah anda memiliki sumber?
Peter Mortensen
Secara teknis, ini adalah struktur kontrol: php.net/manual/en/control-structures.foreach.php Saya telah memperbarui jawabannya sesuai dengan itu.
Scharrels
4

Array dalam PHP adalah array asosiatif (atau dikenal sebagai kamus atau hash) secara default. Jika Anda tidak secara eksplisit menetapkan kunci ke suatu nilai, penerjemah akan diam-diam melakukannya untuk Anda. Jadi, ekspresi yang Anda dapatkan di sana berulang $user_list, membuat kunci tersedia sebagai $userdan nilainya tersedia sebagai $passvariabel lokal di badan file foreach.

Meredith L. Patterson
sumber
3

$user_list adalah larik data yang ketika diulang dapat dipecah menjadi nama dan nilainya.

Dalam hal ini namanya adalah $userdan nilainya adalah $pass.

Mizu
sumber