Masalah Asal:
Penggunaan pembolehubah yang tidak terkawal dalam aplikasi PHP boleh membawa kepada banyak ralat "undefined" dan "offset" apabila dijalankan dengan tahap ralat E_NOTICE dihidupkan. Menangani ralat ini melalui penggunaan berlebihan fungsi isset(), empty() dan array_key_exists() boleh membebankan kod dan menghalang kebolehbacaan.
Pendekatan Cadangan:
Sebaliknya bergantung semata-mata pada semakan berubah-ubah, pertimbangkan untuk menstruktur semula kod anda untuk meminimumkan keperluan untuknya. Begini caranya:
Tetapkan nilai lalai kepada pembolehubah semasa pemulaan. Ini menghapuskan keperluan untuk semakan isset() kerana pembolehubah akan sentiasa mempunyai nilai yang ditentukan, tidak kira sama ada ia ditetapkan secara luaran.
Contoh:
$foo = null; // Null $bar = $baz = 'default value'; // Default string
Tentukan nilai lalai untuk argumen fungsi untuk mengelakkan nilai nol. Ini membolehkan fungsi berfungsi dengan input yang boleh diramal tanpa memerlukan semakan isset().
Contoh:
function foo($bar = null) { ... }
Gunakan array_merge() untuk menggabungkan nilai lalai dengan sumber data masuk. Ini memulakan tatasusunan dengan nilai lalai yang diketahui, menghapuskan keperluan untuk semakan isset().
Contoh:
$defaults = ['foo' => false, 'bar' => true, 'baz' => 'default value']; $values = array_merge($defaults, $incoming_array);
Fungsi ini hanya boleh digunakan dalam kes luar biasa di mana kehadiran atau ketiadaan kunci adalah penting. Secara amnya, memulakan pembolehubah atau tatasusunan akan menghapuskan keperluan untuk semakan array_key_exists().
Contoh:
$array = ['key' => null]; if (array_key_exists('key', $array)) { ... }
Gunakan semakan isset() dan empty() dengan berhati-hati dalam templat. Jika pembolehubah tidak ditetapkan atau kosong, ia harus digantikan dengan nilai lalai atau mesej pengendalian ralat yang sesuai.
Contoh:
<?php if (isset($foo)): ?> <!-- Output content --> <?php else: ?> <p>Foo is not set.</p> <?php endif; ?>
Dengan mengikuti ini garis panduan, anda boleh mengurangkan dengan ketara pergantungan pada semakan isset(), empty(), dan array_key_exists() sambil mengekalkan keserasian E_NOTICE. Pendekatan ini membawa kepada kod yang lebih bersih, lebih mudah dibaca dan meningkatkan kebolehpercayaan dan kebolehselenggaraan kod anda.
Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan Pemeriksaan Pembolehubah yang sukar digunakan dalam Kod PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!