Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist der Unterschied zwischen zwei Möglichkeiten, PHP-Konstanten zu definieren: define und const?

Was ist der Unterschied zwischen zwei Möglichkeiten, PHP-Konstanten zu definieren: define und const?

青灯夜游
青灯夜游nach vorne
2022-07-27 11:30:093215Durchsuche

Dieser Artikel wird Ihnen helfen, PHP-Konstanten zu verstehen, die beiden Definitionsmethoden von PHP-Konstanten zu vergleichen und über ihre Unterschiede zu sprechen. Ich hoffe, dass er für alle hilfreich ist!

Was ist der Unterschied zwischen zwei Möglichkeiten, PHP-Konstanten zu definieren: define und const?

Eine Konstante ist ein einfacher Bezeichner. Dieser Wert kann während der Skriptausführung nicht geändert werden (außer bei sogenannten magischen Konstanten, die keine Konstanten sind). Bei Konstanten wird standardmäßig die Groß-/Kleinschreibung beachtet. Normalerweise werden Konstantenbezeichner immer in Großbuchstaben geschrieben.

Mit der Funktion define() können Sie Konstanten definieren. Nach PHP5.3.0 können Sie das Schlüsselwort const verwenden, um Konstanten außerhalb der Klassendefinition zu definieren. In früheren Versionen kann das Schlüsselwort const nur in Klassen verwendet werden. Sobald eine Konstante definiert ist, kann sie weder geändert noch undefiniert werden.

Konstanten können nur Skalardaten enthalten (boolesche Werte, Ganzzahlen, Gleitkommazahlen und Zeichenfolgen). Ressourcenkonstanten können definiert werden, sollten jedoch vermieden werden, da sie zu unvorhersehbaren Ergebnissen führen können.

Sie können den Wert einer Konstante einfach durch Angabe ihres Namens ermitteln. Im Gegensatz zu Variablen sollten Sie das $-Zeichen nicht vor eine Konstante setzen. Wenn der Konstantenname dynamisch ist, können Sie auch die Funktion konstant() verwenden, um den Wert der Konstante abzurufen. Verwenden Sie get_defined_contstants(), um eine Liste aller definierten Konstanten abzurufen.

Die Unterschiede zwischen Konstanten und Variablen sind wie folgt:

1 Es gibt kein Dollarzeichen ($) vor den Konstanten

2 Konstanten können nur über die Funktion define() definiert werden, nicht durch Zuweisung Anweisungen

3. Sie können die Konstanten ignorieren. Der Gültigkeitsbereich von Variablen kann überall definiert und abgerufen werden.

4 Sobald eine Konstante definiert ist, kann sie nicht neu definiert oder aufgehoben werden. 5. Der Wert einer Konstante kann nur ein Skalar sein

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

F: Wenn Sie eine Konstante in PHP definieren, const und den Unterschied definieren?

Antwort: Die Verwendung von const macht den Code einfach und leicht lesbar. const selbst ist eine Sprachstruktur und define ist eine Funktion. Darüber hinaus ist const beim Kompilieren viel schneller als define.

1. Const wird für die Definition von Klassenmitgliedsvariablen verwendet. Einmal definiert, kann es nicht geändert werden. Define kann nicht zum Definieren von Klassenmitgliedsvariablen verwendet werden, kann jedoch für globale Konstanten verwendet werden.

2. Const kann in Klassen verwendet werden,

3 Const kann keine Konstanten in bedingten Anweisungen definieren

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

4. Const kann Ausdrücke als Namen verwenden.

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

5 Akzeptieren Sie statische Skalare, während define jeden Ausdruck verwenden kann

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

6 Bei den durch const definierten Konstanten wird die Groß-/Kleinschreibung beachtet, während define über den dritten Parameter angeben kann, ob die Groß-/Kleinschreibung beachtet werden soll (true bedeutet, dass die Groß-/Kleinschreibung nicht berücksichtigt wird).

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

Empfohlenes Lernen: „

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen zwei Möglichkeiten, PHP-Konstanten zu definieren: define und const?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen