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
Barbara Streisandasal
2024-12-22 18:54:10906semak imbas

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"];

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

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!

Kenyataan:
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