Rumah > Artikel > pembangunan bahagian belakang > Penyelesaian kepada Amaran PHP: Argumen tidak sah dibekalkan untuk in_array()
Penyelesaian kepada Amaran PHP: Argumen tidak sah dibekalkan untuk in_array()
Semasa proses pembangunan menggunakan PHP, kadangkala mesej amaran ini muncul: Amaran PHP: Argumen tidak sah dibekalkan untuk in_array(). Amaran ini sering muncul apabila menggunakan fungsi in_array(). Jadi apakah maksud mesej amaran ini dan bagaimana untuk menyelesaikannya? Isu ini akan dihuraikan di bawah.
Pertama sekali, fungsi in_array() ialah fungsi dalam PHP yang digunakan untuk menanyakan sama ada elemen tertentu berada dalam tatasusunan. Sintaksnya adalah seperti berikut:
in_array($needle, $haystack, $strict)
di mana $needle ialah elemen yang akan ditemui, $haystack ialah array yang ditentukan, dan $strict ialah parameter pilihan , menunjukkan sama ada untuk membezakan jenis data elemen dengan ketat. Jika fungsi menjumpai $needle, ia mengembalikan benar, jika tidak ia mengembalikan palsu.
Jika Amaran PHP gesaan: Argumen tidak sah yang dibekalkan untuk in_array() muncul semasa memanggil fungsi in_array(), ini bermakna terdapat masalah dengan parameter lulus fungsi, mengakibatkan fungsi tidak dapat laksanakan secara normal.
Secara khusus, amaran ini biasanya disebabkan oleh situasi berikut:
Apabila memanggil fungsi in_array() , $ jarum dan $haystack mesti lulus nilai yang sah. Amaran ini akan muncul jika anda menghantar nilai yang bukan nilai yang sah (seperti pembolehubah tidak ditentukan, nilai nol atau elemen yang bukan tatasusunan).
Sebagai contoh, kod berikut akan mencetuskan amaran ini:
$var = null;
if (in_array($var, [1, 2, 3])) {
echo "value found";
}
Dalam contoh ini, kerana pembolehubah $var tidak menyatakan nilai yang sah, fungsi tidak berfungsi dengan betul dan amaran muncul.
Menurut sintaks fungsi in_array(), $needle harus menjadi parameter pertama, $haystack harus menjadi parameter kedua, $ strict ialah parameter ketiga pilihan. Jika anda menghantar parameter dengan salah, ini boleh menyebabkan amaran muncul.
Sebagai contoh, kod berikut akan mencetuskan amaran ini:
jika (in_array([1, 2, 3], 2)) {
echo "value found";
}
Dalam contoh ini, amaran muncul kerana parameter tidak dalam susunan yang betul, menyebabkan fungsi tidak berfungsi dengan betul.
Apabila memanggil fungsi in_array(), parameter $haystack mestilah tatasusunan yang sah. Jika anda menghantar nilai bukan tatasusunan (seperti rentetan atau nombor), amaran akan dicetuskan.
Sebagai contoh, kod berikut akan mencetuskan amaran ini:
jika (in_array(2, 3)) {
echo "value found";
}
Dalam contoh ini , Amaran berlaku kerana argumen kedua bukan tatasusunan yang sah kerana argumen dalam susunan yang salah.
Penyelesaian:
Apabila gesaan amaran ini muncul, anda boleh mencuba penyelesaian berikut:
Apabila memanggil fungsi in_array(), semak sama ada parameter anda diluluskan seperti yang diperlukan oleh fungsi tersebut Pastikan $needle dan $haystack lulus nilai yang sah dan parameter $haystack mestilah tatasusunan yang sah.
Pastikan pembolehubah anda ditakrifkan dan dalam skop yang betul sebelum menggunakannya. Amaran ini akan muncul jika anda menggunakan pembolehubah yang tidak ditentukan.
Jika anda tidak pasti apakah nilai pembolehubah atau sama ada ia mengandungi nilai yang dijangkakan, anda boleh menggunakan var_dump() fungsi untuk debugging, untuk menentukan nilai dan jenis pembolehubah. Ini membantu menentukan sama ada, dan bagaimana, pembolehubah boleh dihantar ke fungsi.
Ringkasan:
Apabila menggunakan fungsi in_array(), anda mesti memastikan bahawa parameter fungsi diluluskan dengan betul. Jika mesej amaran muncul, anda boleh menggunakan penyelesaian yang disenaraikan di atas untuk menyelesaikan isu tersebut. Pada masa yang sama, semasa proses pembangunan, adalah disyorkan untuk menggunakan alat penyahpepijatan yang sesuai untuk memastikan fungsi sentiasa dilaksanakan seperti yang diharapkan. Ini bukan sahaja membantu menentukan nilai berubah, tetapi juga meningkatkan kecekapan pembangunan.
Atas ialah kandungan terperinci Penyelesaian kepada Amaran PHP: Argumen tidak sah dibekalkan untuk in_array(). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!