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.


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

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

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!


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)

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.


3

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

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.