Apakah perbezaan antara dua cara untuk menentukan pemalar PHP: define dan const?

青灯夜游
Lepaskan: 2023-04-11 07:04:01
ke hadapan
3267 orang telah melayarinya

Artikel ini akan memperkenalkan anda kepada pemalar PHP, membandingkan dua kaedah definisi pemalar PHP dan bercakap tentang perbezaannya, saya harap ia akan membantu semua orang.

Apakah perbezaan antara dua cara untuk menentukan pemalar PHP: define dan const?

Pemalar ialah pengecam mudah. Nilai ini tidak boleh diubah semasa pelaksanaan skrip (kecuali untuk apa yang dipanggil pemalar ajaib, yang bukan pemalar). Pemalar adalah sensitif huruf besar-kecil secara lalai. Biasanya pengecam malar sentiasa menggunakan huruf besar.

Anda boleh menggunakan fungsi define() untuk mentakrifkan pemalar. Selepas php5.3.0, anda boleh menggunakan kata kunci const untuk menentukan pemalar di luar definisi kelas Dalam versi sebelumnya, kata kunci const hanya boleh digunakan dalam kelas. Setelah pemalar ditakrifkan, ia tidak boleh diubah atau tidak ditentukan.

Malar hanya boleh mengandungi data skalar (boolean, integer, apungan dan rentetan). Pemalar sumber boleh ditakrifkan, tetapi harus dielakkan kerana ia boleh menyebabkan hasil yang tidak dapat diramalkan.

Anda boleh mendapatkan nilai pemalar hanya dengan menyatakan namanya Tidak seperti pembolehubah, anda tidak sepatutnya meletakkan tanda $ di hadapan pemalar. Jika nama pemalar adalah dinamik, anda juga boleh menggunakan fungsi pemalar() untuk mendapatkan nilai pemalar. Gunakan get_defined_conttants() untuk mendapatkan senarai semua pemalar yang ditentukan.

Perbezaan antara pemalar dan pembolehubah adalah seperti berikut:

1 Tiada tanda dolar ($) di hadapan pemalar

2 . Pemalar hanya boleh lulus define() definisi fungsi, tetapi bukan melalui pernyataan tugasan

3 Pemalar boleh ditakrifkan dan diakses di mana-mana tanpa mengira skop pembolehubah

4 ditakrifkan, ia tidak boleh ditakrifkan semula atau tidak ditakrifkan

5 Nilai pemalar hanya boleh menjadi skalar

<?php
// 以下代码在 PHP 5.3.0 后可以正常工作
const USERNAME = &#39;zhouguowei&#39;;
echo USERNAME;
echo constant("USERNAME");
 
const ZHOUUSERNAME = &#39;zhouguowei2222222222&#39;;
 
define(&#39;MYUSERNAME&#39;,&#39;zhouguowei1111111&#39;);
echo "<pre class="brush:php;toolbar:false">";
print_r(get_defined_constants());  
?>
Salin selepas log masuk

S: Apabila mentakrifkan pemalar dalam PHP, apakah perbezaannya. antara const dan define?

Jawapan: Menggunakan const menjadikan kod mudah dan mudah dibaca const itu sendiri ialah struktur bahasa, dan define ialah fungsi. Di samping itu, const adalah lebih cepat daripada menentukan semasa penyusunan.

1. Const digunakan untuk menentukan pembolehubah ahli kelas Setelah ditakrifkan, ia tidak boleh diubah suai. Define tidak boleh digunakan untuk definisi pembolehubah ahli kelas, tetapi boleh digunakan untuk pemalar global.

2. Const boleh digunakan dalam kelas, define tidak boleh

3 Const tidak boleh mentakrifkan pemalar dalam pernyataan bersyarat

<?php
if (...){
const FOO = &#39;BAR&#39;;    // 无效的invalid
}
if (...) {
define(&#39;FOO&#39;, &#39;BAR&#39;); // 有效的valid
}
?>
Salin selepas log masuk

4 boleh menggunakan ungkapan sebagai nama

<?php
const  FOO = &#39;BAR&#39;;
for ($i = 0; $i < 32; ++$i) {
define(&#39;BIT_&#39; . $i, 1 << $i);
}
?>
Salin selepas log masuk

5 const hanya boleh menerima skalar statik, dan define boleh menggunakan sebarang ungkapan

<?php
const BIT_5 = 1 << 5;    // 无效的invalid
define(&#39;BIT_5&#39;, 1 << 5); // 有效的valid
?>
Salin selepas log masuk

6 Apabila const mentakrifkan pemalar Ia adalah sensitif huruf besar dan kecil define boleh menentukan sama ada ia sensitif huruf besar-besaran melalui parameter ketiga (benar menunjukkan tidak sensitif huruf besar-besaran).

<?php
define(&#39;FOO&#39;, &#39;BAR&#39;, true);
echo FOO; // BAR
echo foo; // BAR
?>
Salin selepas log masuk

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Apakah perbezaan antara dua cara untuk menentukan pemalar PHP: define dan const?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:cnblogs.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!