Rumah > pembangunan bahagian belakang > tutorial php > Mengapakah `in_array()` dan `array_search()` PHP Kadangkala Mengembalikan Keputusan Yang Tidak Dijangka?

Mengapakah `in_array()` dan `array_search()` PHP Kadangkala Mengembalikan Keputusan Yang Tidak Dijangka?

Susan Sarandon
Lepaskan: 2024-12-10 22:49:12
asal
388 orang telah melayarinya

Why Does PHP's `in_array()` and `array_search()` Sometimes Return Unexpected Results?

PHP in_array() dan array_search() Gelagat Pelik: Menyelidiki Parameter Pilihan

Dalam menggunakan PHP in_array(), anda mungkin menghadapi tingkah laku yang tidak dijangka apabila mencari unsur-unsur yang tidak wujud. Artikel ini menyiasat keanehan ini dan meneroka peleraian dengan memperkenalkan parameter $strict yang tidak jelas.

Pertimbangkan tatasusunan seperti $arr = [TRUE, "some string", "something else"]. Apabila mencari "ujian" menggunakan in_array(), ia secara mengejutkan mengembalikan TRUE. Begitu juga, array_search() mendapatkan semula indeks "tidak tepat" 0. Tingkah laku ini pada mulanya kelihatan membingungkan, yang membawa kepada andaian bahawa TRUE secara automatik mencetuskan hasil positif universal.

Walau bagaimanapun, ini bukan pepijat tetapi ciri yang disengajakan . Kedua-dua in_array() dan array_search() mempunyai parameter ketiga yang sering diabaikan, $strict, yang menentukan mod perbandingan. Nilai lalainya, FALSE, membenarkan perbandingan longgar (==), mengabaikan percanggahan jenis.

Oleh itu, dalam kes $arr, TRUE == "sebarang rentetan tidak kosong" dinilai kepada BENAR. Dengan menetapkan $strict kepada TRUE, anda mengarahkan PHP untuk menggunakan perbandingan yang ketat (===), mengesahkan kedua-dua nilai dan kesamaan jenis.

Pengetahuan ini memberikan kejelasan kepada tingkah laku yang membingungkan. Dengan menggunakan perbandingan yang ketat, anda boleh mengelakkan salah tafsir dan memastikan hasil carian yang tepat. Untuk mendapatkan maklumat lanjut tentang persamaan dan perbandingan identiti dalam PHP, rujuk rujukan yang diberikan.

Atas ialah kandungan terperinci Mengapakah `in_array()` dan `array_search()` PHP Kadangkala Mengembalikan Keputusan Yang Tidak Dijangka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan