Hari ini saya melihat Caterpillar membuat perbedaan antara string kosong dan NULL untuk semua orang ( http://bbs.phpchina.com/thread-99574-1-2.html ). pengetahuan (seperti saya) sangat membantu. Saat itu sudah larut malam, dan tiba-tiba saya memeriksa banyak "informasi resmi" dan menulis artikel dan mempostingnya di sini untuk membantu semua orang mempelajari dasar-dasarnya tidak ketat, dan isinya hanya Ringkasan pribadi, jika ada kekurangan silahkan tambahkan ahlinya lagi. Tanpa basa-basi lagi, intisarinya adalah sebagai berikut:
1. Perbedaan echo dan print.
Fungsi echo dan print di PHP adalah pada dasarnya sama (output), namun masih terdapat perbedaan halus di antara keduanya. Tidak ada nilai kembalian setelah keluaran echo, tetapi print memiliki nilai kembalian, dan mengembalikan nilai salah ketika eksekusinya gagal. Oleh karena itu, ini dapat digunakan sebagai fungsi normal. Misalnya, setelah mengeksekusi kode berikut, nilai variabel $r akan menjadi 1.
Kode:
$r = print "Halo Dunia";
Ini berarti bahwa print dapat digunakan dalam beberapa ekspresi kompleks, namun echo tidak bisa. Namun, karena pernyataan echo tidak memerlukan nilai apa pun untuk dikembalikan, pernyataan echo dalam kode berjalan sedikit lebih cepat daripada pernyataan print.
2. Perbedaan antara include dan require.
Fungsi include() dan require() pada dasarnya sama (include), namun terdapat beberapa perbedaan dalam penggunaannya. include() merupakan fungsi penyertaan bersyarat, sedangkan require() merupakan fungsi penyertaan bersyarat fungsi inklusi tanpa syarat. Misalnya, dalam kode berikut, jika variabel $a benar, file a.php akan disertakan:
Kode:
jika($a){
include("a.php");
}
Namun, require() berbeda dari include(). Terlepas dari nilai $a, kode berikut akan menyertakan file a.php ke dalam file:
Kode:
jika($a){
memerlukan("a.php");
}
Dalam hal penanganan error, gunakan pernyataan include. Jika terjadi kesalahan include, program akan melewatkan pernyataan include. Meskipun pesan kesalahan akan ditampilkan, program akan terus dijalankan! Tapi require akan memberi Anda kesalahan fatal.
Tentu saja Qifen juga bisa kita pahami secara harfiah: require berarti permintaan atau permintaan yang sangat kuat.
3. Pernyataan require_once() dan include_once()
di luar topik, karena terlihat mirip. Pernyataan require_once() dan include_once() yang sederhana masing-masing berhubungan dengan pernyataan require() dan include(). Pernyataan require_once() dan include_once() terutama digunakan ketika beberapa file perlu disertakan, yang secara efektif dapat menghindari kesalahan definisi berulang fungsi atau variabel yang disebabkan oleh penyertaan potongan kode yang sama.
4. Perbedaan antara string kosong ('') dan NULL.
Di PHP, string kosong dan NULL disimpan dengan nilai 0, tetapi tipenya berbeda. Anda dapat mencoba echo gettype(''); NULL); Anda akan menemukan bahwa yang mereka cetak masing-masing adalah string dan NULL. Tentu saja, 0 juga mudah dibingungkan. Anda dapat mencoba echo gettype(0); integer). , dapat dilihat bahwa string (''), NULL dan 0 adalah "nilai yang sama" tetapi bukan tipe yang sama.
5.! Perbedaan antara isset dan kosong
dapat dipahami dari arti harfiahnya: kosong untuk menentukan apakah suatu variabel "kosong", sedangkan isset untuk menentukan apakah suatu variabel telah disetel. Namun ada satu hal yang harus diperhatikan di sini: ketika nilai suatu variabel adalah 0, kosong menganggap variabel tersebut sama dengan kosong, yaitu setara dengan tanpa pengaturan. Misalnya, ketika kita mendeteksi variabel $id, ketika $id=0, kita menggunakan kosong dan isset untuk mendeteksi apakah variabel $id telah dikonfigurasi. Keduanya akan mengembalikan nilai yang berbeda: kosong menganggapnya tidak dikonfigurasi, dan isset bisa mendapatkan nilai $id. , lihat contoh di bawah ini:
Kode? :
$id=0;
kosong($id)?print "Saya kosong":print "Saya $id."; //Hasil: Saya kosong
!isset($id)?print "Saya kosong":print "Saya $id.";//Hasil: Saya 0
6. Perbedaan antara == (sama) dan === (sama).
Tinjau perbedaan antara string kosong keempat ("") dan NULL di atas dan mari kita lihat contohnya:
Kode:
'' == BATAL;
'' === NULL;
Setelah menjalankannya, Anda akan menemukan bahwa yang pertama benar, dan yang kedua salah! Terlihat bahwa == hanya membandingkan apakah nilainya sama, sedangkan === tidak hanya membandingkan nilai, tetapi juga membandingkan jenisnya yang lebih ketat.