Rumah >pembangunan bahagian belakang >masalah PHP >Apa yang berlaku apabila membandingkan tatasusunan dalam PHP
Array ialah jenis data yang sangat penting dalam PHP Ia digunakan secara meluas dalam pelbagai senario, seperti menyimpan data, menghantar parameter, dsb. Dalam banyak kes, kita perlu membandingkan dua atau lebih tatasusunan untuk menentukan sama ada ia sama. Jadi, apa yang berlaku apabila membandingkan tatasusunan dalam PHP?
Terdapat dua operator untuk membandingkan tatasusunan dalam PHP, iaitu "==" dan "===". Hasil perbandingan kedua-dua operator ini adalah berbeza Mari kita lihat peraturan perbandingan operator "==".
Apabila anda menggunakan operator "==" untuk membandingkan dua tatasusunan, ia membandingkan setiap elemen dalam tatasusunan satu demi satu. Secara khusus, ia terlebih dahulu membandingkan sama ada bilangan elemen dalam dua tatasusunan adalah sama. Jika nombor adalah sama, bandingkan setiap elemen satu demi satu, jika tidak palsu dikembalikan secara langsung. Semasa perbandingan elemen, jika satu elemen dalam tatasusunan adalah sama dengan mana-mana elemen dalam tatasusunan lain, kedua-dua elemen itu dianggap sama. Kesamaan yang disebutkan di sini bermakna bahawa kedua-dua elemen mempunyai nilai dan nilai kunci yang sama Mereka adalah sama hanya jika nilai dan nilai kunci adalah sama.
Berikut ialah contoh yang menunjukkan proses membandingkan dua tatasusunan menggunakan operator "==":
$arr1 = array("apple", "banana", "oren") ;
$arr2 = array("pisang", "oren", "epal");
jika ($arr1 == $arr2) {
echo "Two arrays are equal.";
} lain {
echo "Two arrays are not equal.";
}
Hasil keluaran ialah "Dua tatasusunan tidak sama.". Ini kerana walaupun tatasusunan $arr1 dan tatasusunan $arr2 mengandungi elemen yang sama, tetapi dalam susunan yang berbeza, ia tidak sama mengikut peraturan perbandingan pengendali "==".
Seterusnya, mari kita lihat peraturan perbandingan pengendali “===”.
Apabila menggunakan operator "===" untuk membandingkan dua tatasusunan, pertama sekali ia akan membandingkan sama ada rujukan kedua-dua tatasusunan adalah sama, iaitu, sama ada ia menunjukkan kepada tatasusunan yang sama. Jika mereka bukan tatasusunan yang sama, kembalikan palsu secara langsung jika tidak, bandingkan setiap elemen untuk kesamaan mengikut peraturan pengendali "==".
Berikut ialah contoh untuk menggambarkan penggunaan pengendali "===".
$arr1 = array("epal", "pisang", "oren");
$arr2 = array("epal", "pisang", "oren");
$arr3 = &$arr1;
jika ($arr1 === $arr2) {
echo "Two arrays are equal.";
} lain {
echo "Two arrays are not equal.";
}
jika ($arr1 === $arr3) {
echo "Two arrays are the same.";
} lain {
echo "Two arrays are not the same.";
}
Hasil output ialah "Dua tatasusunan tidak sama. " dan "Dua tatasusunan adalah sama." Ini kerana walaupun $arr1 dan $arr2 mengandungi elemen yang sama, ia bukanlah tatasusunan yang sama $arr1 dan $arr3 adalah tatasusunan yang sama dan menghala ke ruang memori yang sama.
Dalam pengaturcaraan sebenar, kita perlu memilih untuk menggunakan operator "==" atau "===" mengikut situasi sebenar. Jika kita perlu membandingkan nilai elemen, nama kunci dan susunan dalam tatasusunan, kita harus menggunakan operator "==" jika kita perlu membandingkan sama ada tatasusunan itu betul-betul sama, termasuk rujukan, nilai elemen, nama kunci dan susunan , kita harus menggunakan simbol operator "===".
Akhir sekali, perlu diingatkan bahawa apabila membandingkan tatasusunan, jika tatasusunan mengandungi objek, hasil perbandingannya ditentukan oleh objek ini. Oleh kerana perbandingan objek dalam PHP adalah berasaskan rujukan, jika objek mempunyai rujukan yang berbeza dalam dua tatasusunan, kedua-dua tatasusunan akan dianggap tidak sama rata.
Atas ialah kandungan terperinci Apa yang berlaku apabila membandingkan tatasusunan dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!