Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Fungsi `in_array()` dan `array_search()` PHP Berperilaku dengan Nilai Boolean dan Parameter `$strict`?

Bagaimanakah Fungsi `in_array()` dan `array_search()` PHP Berperilaku dengan Nilai Boolean dan Parameter `$strict`?

Barbara Streisand
Lepaskan: 2024-12-22 18:54:10
asal
920 orang telah melayarinya

How Do PHP's `in_array()` and `array_search()` Functions Behave with Boolean Values and the `$strict` Parameter?

Memahami Gelagat PHP in_array() dan array_search()

Fungsi in_array() dan array_search() PHP boleh mempamerkan tingkah laku yang tidak dijangka apabila berurusan dengan tatasusunan yang mengandungi nilai boolean. Untuk menyelesaikan ketidakkonsistenan ini, adalah penting untuk memahami kefungsian yang wujud bagi fungsi ini.

Kedua-dua fungsi mempunyai parameter ketiga pilihan, $strict, yang lalai kepada FALSE. Apabila $strict ditetapkan kepada FALSE, fungsi ini menggunakan perbandingan longgar (==) untuk menilai nilai. Ini bermakna mereka hanya menyemak sama ada nilai adalah sama, tanpa mengira jenisnya.

Sebagai contoh, dalam tatasusunan yang disediakan:

$arr = [TRUE, "some string", "something else"];
Salin selepas log masuk

Memanggil in_array("test", $arr) akan kembalikan BENAR walaupun "ujian" tidak terdapat dalam tatasusunan. Ini berlaku kerana TRUE secara longgar sama dengan "sebarang rentetan bukan kosong", termasuk "ujian."

Begitu juga, array_search("test", $arr) akan mengembalikan 0, menunjukkan bahawa "ujian" ditemui di indeks 0. Ini kerana TRUE dan "sebarang rentetan bukan kosong" dianggap sama secara lalai.

Untuk memastikan perbandingan yang tepat, anda perlu tetapkan $strict kepada TRUE, yang memaksa fungsi menggunakan perbandingan ketat (===). Perbandingan ketat menilai kedua-dua nilai dan jenis pembolehubah. Oleh itu, apabila $strict ditetapkan kepada TRUE:

in_array("test", $arr, true); // Returns false
array_search("test", $arr, true); // Returns -1
Salin selepas log masuk

Kesimpulannya, tingkah laku lalai in_array() dan array_search() boleh membawa kepada hasil yang tidak dijangka apabila berurusan dengan nilai boolean. Dengan menetapkan parameter $strict kepada TRUE, anda boleh menguatkuasakan perbandingan yang ketat, memastikan bahawa fungsi menilai kedua-dua nilai dan jenis pembolehubah untuk hasil yang tepat.

Atas ialah kandungan terperinci Bagaimanakah Fungsi `in_array()` dan `array_search()` PHP Berperilaku dengan Nilai Boolean dan Parameter `$strict`?. 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