Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Menguji Kebolehpercayaan untuk Kewujudan Pembolehubah dalam PHP?

Bagaimana Menguji Kebolehpercayaan untuk Kewujudan Pembolehubah dalam PHP?

Susan Sarandon
Susan Sarandonasal
2024-11-01 14:03:45585semak imbas

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>

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>

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!

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