Heim  >  Artikel  >  Backend-Entwicklung  >  Der Unterschied zwischen const und define in PHP (Ergänzung)

Der Unterschied zwischen const und define in PHP (Ergänzung)

WBOY
WBOYOriginal
2016-07-30 13:30:39822Durchsuche

Eine Konstante ist ein Bezeichner (Name) eines einfachen Werts. Wie der Name schon sagt, kann der Wert 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.

Sie können die Funktion define() verwenden, um Konstanten zu definieren. Ab PHP 5.3.0 können Sie das Schlüsselwort const verwenden, um Konstanten außerhalb der Klassendefinition zu definieren. In früheren Versionen konnte das Schlüsselwort const nur innerhalb einer Klasse 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). Es ist möglich, Ressourcenkonstanten zu definieren, dies sollte jedoch vermieden werden, da es zu unvorhersehbaren Ergebnissen führen kann.

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

Die Unterschiede zwischen Konstanten und Variablen sind wie folgt:

  • Vor der Konstante steht kein Dollarzeichen ($)
  • Konstante kann nur definiert werden mit der Funktion define(), nicht über die Zuweisungsanweisung;
  • Konstanten können unabhängig vom Gültigkeitsbereich der Variablen definiert und abgerufen werden;
  • Konstanten können nicht neu definiert oder aufgehoben werden, sobald sie definiert sind; >
  • Konstanten Der Wert von kann nur ein Skalar sein.
  • Beispiel #1 Konstanten definieren

1 <?php

2define("CONSTANT", "Hello world.");

3echoCONSTANT; // outputs "Hello world."

4echoConstant; // 输出 "Constant" 并发出一个提示性信息

5?>
Beispiel Nr. 2 Verwenden Sie das Schlüsselwort const, um Konstanten zu definieren

1 <?php

2// 以下代码在 PHP 5.3.0 后可以正常工作

3constCONSTANT = 'Hello World';

4echoCONSTANT;

5?>
Beispiel #3 Zulässige und illegale Konstantennamen

01 <?php

02 // 合法的常量名

03 define("FOO",     "something");

04 define("FOO2",    "something else");

05 define("FOO_BAR", "something more");

06 // 非法的常量名

07 define("2FOO",    "something");

08 // 下面的定义是合法的,但应该避免这样做:(自定义常量不要以__开头)

09 // 也许将来有一天PHP会定义一个__FOO__的魔术常量

10 // 这样就会与你的代码相冲突

11 define("__FOO__", "something");

Bei der Definition von Konstanten in PHP besteht der Unterschied zwischen const und define:

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 für die Definition von Klassenmitgliedsvariablen verwendet werden, kann aber für globale Konstanten verwendet werden.

(2).const kann in Klassen verwendet werden, define nicht.

(3).const kann keine Konstanten in bedingten Anweisungen definieren.

Zum Beispiel:

1 if(...){

2     constFOO = 'BAR';    // 无效的invalid

3 }

4 if(...) {

5     define('FOO', 'BAR'); // 有效的valid

6 }

(4).const nimmt einen gewöhnlichen Konstantennamen an, und define kann einen Ausdruck als den annehmen Name.

1 const  FOO = 'BAR';

2 for($i= 0; $i< 32; ++$i) {

3     define('BIT_'. $i, 1 << $i);

4 }

(5).const kann nur statische Skalare akzeptieren, während define jeden Ausdruck annehmen kann.

Zum Beispiel:

1 constBIT_5 = 1 << 5;    // 无效的invalid

2 define('BIT_5', 1 << 5); // 有效的valid

(6).const definition Bei Konstanten wird die Groß-/Kleinschreibung beachtet, und define kann über den dritten Parameter angeben, ob die Groß-/Kleinschreibung beachtet wird (true bedeutet, dass die Groß-/Kleinschreibung nicht beachtet wird).

Zum Beispiel:

1 define('FOO', 'BAR', true);

2 echoFOO; // BAR

3 echofoo; // BAR

Verwandte Funktionen:

define – Definieren einer Konstante

Beschreibung:

bool define ( string $name , Mixed $value [, bool $case_insensitive = false ]

Parameter:

Name: Konstantenname.

Wert: Wert der Konstante ;Nur Skalar und Null sind zulässig. Es ist auch möglich, den Typ des konstanten Werts als Ressource zu definieren, dies wird jedoch nicht empfohlen und kann zu unbekannten Situationen führen case_insensitive: Wenn die Konstante auf TRUE gesetzt ist, wird die Groß-/Kleinschreibung nicht beachtet. Beispielsweise stellen CONSTANT und Constant unterschiedliche Werte dar (Hinweis: Bei Konstanten, bei denen die Groß-/Kleinschreibung nicht berücksichtigt wird, wird die Groß-/Kleinschreibung nicht berücksichtigt. >)

Rückgabewert: TRUE on Erfolg, oder FALSE bei Fehler.


Konstante – Gibt einen konstanten Wert zurück

Beschreibung: gemischte Konstante ( string $ name )

Gibt den Wert der Konstante über name zurück, wenn Sie den Namen der Konstante nicht kennen, aber den Wert der Konstante benötigen, ist die Konstante sehr nützlich Der Name wird in einer Variablen gespeichert oder der Konstantenname wird von der Funktion zurückgegeben:

. Rückgabewert:

Gibt NULL zurück, wenn die Konstante nicht definiert ist.

Beschreibung:

bool definiert ( string $name )

Überprüfen Sie, ob die Konstante des Namens definiert ist. Hinweis: Wenn Sie überprüfen möchten, ob eine Variable vorhanden ist, verwenden Sie isset() , verwenden Sie den Parameter

: Der Name der Konstante

Rückgabewert: Wenn die Konstante dieses Namens definiert ist, es gibt TRUE zurück; wenn es nicht definiert ist, gibt es FALSE zurück.

get_defined_constants:

Gibt ein assoziatives Array mit den Namen aller Konstanten und ihren Werten zurück

Gibt ein assoziatives Array mit den Namen zurück aller Konstanten und ihrer Werte. Dazu gehören die Konstanten, die durch Erweiterungen und die Funktion define() erstellt wurden

Das Obige stellt den Unterschied zwischen const und define in PHP vor (ergänzend), einschließlich der relevanten Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn