Bagaimana Menguji Kebolehpercayaan untuk Kewujudan Pembolehubah dalam PHP?

Susan Sarandon
Lepaskan: 2024-11-01 14:03:45
asal
652 orang telah melayarinya

How to Reliably Test for Variable Existence in PHP?

Meneroka Kaedah Pengujian Kewujudan Pembolehubah dalam PHP

PHP menyediakan fungsi isset() untuk menentukan kewujudan pembolehubah. Walau bagaimanapun, seperti yang dinyatakan dalam dokumentasi, ia gagal untuk membezakan antara pembolehubah yang tidak ditetapkan dan pembolehubah yang ditetapkan kepada NULL.

Pendekatan Alternatif dengan Had

Satu percubaan untuk mengatasi had ini ialah :

<code class="php">if (isset($v) || @is_null($v)) {...}</code>
Salin selepas log masuk

Tetapi is_null() juga menghadapi isu yang sama, mengembalikan TRUE untuk pembolehubah yang tidak ditetapkan. Selain itu, @($v === NULL) berkelakuan sama dengan @is_null($v), menjadikannya tidak boleh digunakan.

Penyelesaian Boleh Dipercayai: array_key_exists()

Untuk cara yang boleh dipercayai untuk menyemak kewujudan pembolehubah, pertimbangkan array_key_exists(). Apabila digunakan pada pembolehubah global, ia secara berkesan membezakan antara pembolehubah tidak wujud dan pembolehubah yang ditetapkan kepada NULL.

Menunjukkan Perbezaan

Pertimbangkan contoh berikut:

<code class="php">$a = NULL;
var_dump(array_key_exists('a', $GLOBALS)); // TRUE
var_dump(array_key_exists('b', $GLOBALS)); // FALSE</code>
Salin selepas log masuk

Output menunjukkan bahawa array_key_exists() dengan tepat mengenal pasti kewujudan $a walaupun ia ditetapkan kepada NULL.

Kesimpulan

Sementara isset() dan is_null() menyediakan sokongan separa untuk ujian kewujudan berubah-ubah, array_key_exists() menawarkan penyelesaian yang lebih tepat dan komprehensif. Kaedah ini membezakan dengan betul antara pembolehubah tidak ditetapkan dan pembolehubah yang ditetapkan kepada NULL dalam skop global dan tempatan.

Atas ialah kandungan terperinci Bagaimana Menguji Kebolehpercayaan untuk Kewujudan Pembolehubah dalam PHP?. 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