Rumah >pembangunan bahagian belakang >tutorial php >Apakah perbezaan antara dua cara untuk menentukan pemalar PHP: define dan const?

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

青灯夜游
青灯夜游ke hadapan
2022-07-27 11:30:093329semak imbas

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());  
?>

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
}
?>

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);
}
?>

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
?>

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
?>

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!

Kenyataan:
Artikel ini dikembalikan pada:cnblogs.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam