Pembolehubah PHP tidak sedia ada dan bentuk

Oleh , Khamis 31 Julai 2008 10:36 am

Saya terserempak dengan sesuatu yang saya tidak sedar hari ini yang amat berguna .... kawalan ralat operator '@' Â di dalam PHP .

Jadi, untuk beberapa latar belakang untuk bagaimana saya terserempak dengan masalah ini, dalam aplikasi web saya, saya cenderung untuk menggunakan borang yang sama untuk memasukkan data ke dalam satu pangkalan data MySQL. Jika saya mempunyai sejenis nombor 'id' yang ditetapkan melalui satu pemboleh ubah GET kemudian yang mencetuskan beban dari pangkalan data, jika tidak, saya menambah data baru .

Dalam unsur-unsur borang saya, saya sering menetapkan nilai medan bentuk kepada sesuatu seperti <? = $ Data ['fieldValue'];?> ini berfungsi dengan baik apabila pemuatan data tetapi apabila saya memasukkan data baru saya dapatkan borang yang diisi sebagai berikut (catatan tentang login saya atau apabila saya menguji saya telah pelaporan kesilapan yang ditetapkan untuk E_ALL supaya boleh saya pastikan semuanya berjalan dengan betul):

Notis: Undefined pembolehubah: data dalam rumah / / public_html / dataEdit.php pada 69 baris

Jadi apa yang saya akhirnya berakhir lakukan adalah menulis lagi (uglier) kod yang berkata, <? jika (isset ($ data ['fieldValue'])) {echo $ data ['fieldValue'];}?> Tidak betul-betul hebat

Kemudian saya tersandung di seluruh pengendali kawalan kesilapan dalam PHP, hanya dengan meletakkan simbol '@' sebelum pengendali (pada asasnya apa-apa yang boleh mengembalikan hasil) masalah di atas diselesaikan. Sebagai contoh, saya kini boleh membuat untuk parameter nilai <= @ $ data ['fieldValue'];?> . Jika pemboleh ubah tidak ditetapkan (iaitu ralat akan dijana) maka kesilapan yang ditindas.

Nota: Menggunakan simbol '@' boleh menyekat kesilapan utama dan menyembunyikan hakikat bahawa sebahagian daripada laman web anda tidak berjalan dengan betul, jadi berhati-hatilah!

Tinggalkan Reply













Tema Panorama oleh Themocracy

6 pelawat online sekarang
4 tetamu, 2 bots, 0 ahli
Max pengunjung hari ini: 13 di 02:57 am UTC
Bulan ini: 17 di 2011/1/9 23:27 UTC
Tahun ini: 130 28-03-2011 10:40 pm UTC
Semua masa: 130 28-03-2011 10:40 pm UTC