


Detaillierte Erklärung des Unterschieds zwischen const und define in PHP
Verfügbar beim Definieren von Konstanten in PHP Was ist der Unterschied zwischen const und define?
1. const wird zum Definieren von Klassenmitgliedsvariablen verwendet. Sobald sie definiert sind, kann ihr Wert nicht geändert werden. define definiert globale Konstanten, auf die überall zugegriffen werden kann.
2. define kann nicht in einer Klasse definiert werden, aber const muss in einer Klasse definiert werden, und auf die durch const definierten Variablen muss über Klassenname::Variablenname zugegriffen werden.
3. Konstanten können nicht in bedingten Anweisungen definiert werden.
4. const verwendet einen gewöhnlichen Konstantennamen (statischer Skalar) und define kann einen beliebigen Ausdruck als Namen verwenden.
5. const unterscheidet immer zwischen Groß- und Kleinschreibung, jedoch kann define() über den dritten Parameter Konstanten definieren, bei denen die Groß-/Kleinschreibung nicht berücksichtigt wird.
6. Die Verwendung von const ist einfach und leicht zu lesen, und die Verwendung von const zum Definieren ist viel schneller als das Definieren zur Kompilierzeit.
Wenn Sie Konstanten in einer Klasse definieren, können Sie nicht define, sondern const verwenden, wie im folgenden Beispiel:
Empfohlen: „PHP-Tutorial“
<?php //在类外面通常这样定义常量 define("PHP","111cn.net"); class MyClass { //常量的值将始终保持不变。在定义和使用常量的时候不需要使用$符号 const constant = 'constant value'; function showConstant() { echo self::constant . "<br>"; } } echo MyClass::constant . "<br>"; $classname = "MyClass"; echo $classname::constant . "<br>"; // PHP 5.3.0之后 $class = new MyClass(); $class->showConstant(); echo $class::constant."<br>"; // PHP 5.3.0之后 //print_r(get_defined_constants()); //可以用get_defined_constants()获取所有定义的常量 ?>
Im Allgemeinen definiert define Konstanten außerhalb der Klasse, const definiert Konstanten innerhalb der Klasse und auf const muss über Klassenname::Variablenname zugegriffen werden. PHP5.3 und höher unterstützen jedoch die Definition von Konstanten außerhalb von Klassen durch const. Siehe Folgendes:
<?php const a = "abcdef"; echo a; ?>
Was die Grundkenntnisse von Konstanten betrifft, werde ich hier nicht näher darauf eingehen. Darüber hinaus sind define und const weitere Unterschiede (aus dem Internet):
1.const kann keine Konstanten in bedingten Anweisungen definieren, aber define ist wie folgt möglich:
<?php if(1){ const a = 'java'; } echo a; //必错 ?>
2.const verwendet einen gewöhnlichen Konstantennamen, define kann einen Ausdruck als Namen annehmen
<?phpconst FOO = 'PHP'; for ($i = 0; $i < 32; ++$i) { define('PHP_' . $i, 1 << $i); } ?>
3.const kann nur statische Skalare akzeptieren, während define jeden Ausdruck annehmen kann.
<?php const PHP = 1 << 5; // 错误 define('PHP', 1 << 5); // 正确 ?>
4.const selbst ist eine Sprachstruktur. Und define ist eine Funktion. Die Verwendung von const ist also viel schneller.
Die beiden haben etwas gemeinsam: Beide können nicht neu zugeordnet werden.
Der folgende Inhalt ist ein Auszug aus dem Blogbeitrag von Rotted_Pencil: Der Unterschied zwischen der Definition von Konstanten in PHP, define() vs. const
Vorwort
Lesen Ich habe es heute noch einmal auf Stackoverflow gelesen und bin auf einen sehr interessanten Artikel gestoßen, also habe ich ihn übersetzt und zur Hand genommen. Der Artikel wurde von NikiC, einem der PHP-Entwicklungsmitglieder, geschrieben und seine Autorität ist zweifellos
Text
In PHP5.3 gibt es zwei Möglichkeiten, Konstanten zu definieren:
1. Verwenden Sie das Schlüsselwort const
2. Verwenden Sie die Methode define()
const FOO = ‘BAR’; define(‘FOO’,’BAR’);
Der grundlegende Unterschied zwischen den beiden Methoden besteht darin, dass const beim Kompilieren des Codes eine Konstante definiert, während define will Eine Konstante wird definiert, wenn der Code ausgeführt wird. Dies führt dazu, dass const die folgenden Nachteile hat:
const kann nicht in bedingten Anweisungen verwendet werden. Wenn Sie eine globale Variable definieren möchten, muss sich const auf der äußersten Ebene des gesamten Codes befinden:
if (...) { const FOO = 'BAR'; // 无效的 } // but if (...) { define('FOO', 'BAR'); // 有效的 }
Sie fragen sich vielleicht, warum ich das tun möchte? Eines der häufigsten Beispiele ist die Überprüfung, ob eine Konstante definiert wurde:
if (!defined('FOO')) { define('FOO', 'BAR'); }
const kann nur zum Deklarieren von Variablen (z. B. Zahlen, Zeichenfolgen oder wahr, falsch, null, DATEI) verwendet werden. und define() kann auch Ausdrücke akzeptieren. Ab PHP5.6 kann const jedoch auch konstante Ausdrücke akzeptieren:
const BIT_5 = 1 << 5; // 在PHP5.6之后有效,之前无效 define('BIT_5', 1 << 5); // 一直有效
consts Konstantenbenennung kann nur einfachen Text verwenden, während define() Ihnen die Verwendung eines beliebigen Ausdrucks zur Konstantenbenennung ermöglicht. Dadurch können wir Folgendes tun:
for ($i = 0; $i < 32; ++$i) { define('BIT_' . $i, 1 << $i); }
const-definierte Konstanten unterscheiden zwischen Groß- und Kleinschreibung, aber define ermöglicht es Ihnen, die Groß-/Kleinschreibung zu deaktivieren, indem Sie den dritten Parameter auf true setzen:
define('FOO', 'BAR', true); echo FOO; // BAR echo foo; // BAR
The Oben sind die Punkte aufgeführt, auf die Sie achten müssen. Deshalb erkläre ich nun Folgendes, warum ich persönlich immer const verwende, wenn die oben genannten Situationen nicht betroffen sind:
const ist lesbarer und schöner.
const definiert standardmäßig Konstanten im aktuellen Namespace, und die Verwendung von define erfordert, dass Sie den vollständigen Pfad des gesamten Namespace schreiben:
namespace A\B\C; // 如果要定义常量 A\B\C\FOO: const FOO = ‘BAR’; define(‘A\B\C\FOO’, ‘BAR’);
Seit PHP5.6 können auch const-Arrays definiert werden eine Konstante. Define unterstützt diese Funktion derzeit nicht, aber diese Funktion wird in PHP7 implementiert:
const FOO = [1, 2, 3]; // 在PHP 5.6中有效 define(‘FOO’, [1, 2, 3]); // 在PHP 5.6无效, 在PHP 7.0有效
Da const während der Kompilierung ausgeführt wird, ist es schneller als define.
Besonders wenn Sie define zum Definieren einer großen Anzahl von Konstanten verwenden, läuft PHP sehr langsam. Man hat sogar Dinge wie apc_load_constantshide erfunden, um dieses Problem zu vermeiden
Im Vergleich zu define kann const die Effizienz der Definition von Konstanten verdoppeln (auf einem mit XDebug konfigurierten Entwicklungscomputer ist dieser Unterschied sogar noch größer). In Bezug auf die Abfragezeit gibt es jedoch keinen Unterschied zwischen den beiden (da beide dieselbe Abfragetabelle verwenden).
Das Letzte, was zu beachten ist, ist, dass const in Klassen und Schnittstellen verwendet werden kann, während define dies ist Wer Das geht nicht:
class Foo { const BAR = 2; // 有效 } class Baz { define('QUX', 2); // 无效 }
Zusammenfassung
Es sei denn, Sie müssen Ausdrücke verwenden oder Konstanten in bedingten Anweisungen definieren, verwenden Sie const besser nur aus Gründen der einfachen Lesbarkeit des Codes!
Weitere PHP-bezogene Kenntnisse finden Sie auf der PHP-Chinese-Website!
Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung des Unterschieds zwischen const und define in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



define definiert ein mehrzeiliges Makro, indem es „do { \ printf("%d\n", x \ } while (0)“ zur Definition in mehrere Zeilen aufteilt. In einer Makrodefinition muss der Backslash „\“ das letzte Zeichen der Makrodefinition sein und darf weder Leerzeichen noch Kommentare enthalten. Wenn Sie „\“ zur Zeilenfortsetzung verwenden, achten Sie darauf, dass der Code lesbar bleibt und stellen Sie sicher, dass am Ende jeder Zeile ein „\“ steht.

Die Bedeutung und Rolle der Definitionsfunktion in PHP 1. Grundlegende Einführung in die Definitionsfunktion In PHP ist die Definitionsfunktion eine Schlüsselfunktion zum Definieren von Konstanten. Konstanten ändern ihre Werte während der Ausführung des Programms nicht. Mit der Funktion „Definieren“ definierte Konstanten können im gesamten Skript aufgerufen werden und sind global. 2. Die Syntax der Definitionsfunktion Die grundlegende Syntax der Definitionsfunktion lautet wie folgt: define("Konstantenname",Konstantenwert&qu

Ausführliche Erklärung und Codebeispiele von const in C. In der C-Sprache wird das Schlüsselwort const zum Definieren von Konstanten verwendet, was bedeutet, dass der Wert der Variablen während der Programmausführung nicht geändert werden kann. Mit dem Schlüsselwort const können Variablen, Funktionsparameter und Funktionsrückgabewerte geändert werden. Dieser Artikel bietet eine detaillierte Analyse der Verwendung des Schlüsselworts const in der C-Sprache und stellt spezifische Codebeispiele bereit. const modifizierte Variable Wenn const zum Ändern einer Variablen verwendet wird, bedeutet dies, dass die Variable eine schreibgeschützte Variable ist und nicht geändert werden kann, sobald ihr ein Wert zugewiesen wurde. Zum Beispiel: constint

Die defineConditional-Kompilierung kann mithilfe der Vorverarbeitungsanweisungen „#ifdef“, „#ifndef“, „#if“, „#elif“, „#else“ und „#endif“ erreicht werden.

Dieser Artikel vermittelt Ihnen relevantes Wissen über JavaScript. Er stellt Ihnen hauptsächlich die Unterschiede zwischen var, let und const sowie die Beziehung zwischen ECMAScript und JavaScript vor. Ich hoffe, es ist hilfreich für alle.

const ist ein Schlüsselwort, das zum Deklarieren von Konstanten, const-Modifikatoren in Funktionsparametern, const-modifizierten Funktionsrückgabewerten und const-modifizierten Zeigern verwendet werden kann. Detaillierte Einführung: 1. Das Schlüsselwort const kann zum Deklarieren von Konstanten verwendet werden. Der Wert der Konstante kann während der Ausführung des Programms nicht geändert werden. Zeichen usw. oder ein benutzerdefinierter Datentyp; 2. Der const-Modifikator in den Funktionsparametern. Das Schlüsselwort const kann in den Parametern der Funktion verwendet werden, was angibt, dass der Parameter innerhalb der Funktion usw. nicht geändert werden kann.

Für die Audioausgabe und -eingabe sind bestimmte Treiber und Dienste erforderlich, damit sie unter Windows 11 wie erwartet funktionieren. Manchmal treten im Hintergrund Fehler auf, die zu Audioproblemen wie fehlender Audioausgabe, fehlenden Audiogeräten, verzerrtem Audio usw. führen. So beheben Sie, dass der Audiodienst unter Windows 11 nicht reagiert. Wir empfehlen Ihnen, mit den unten genannten Korrekturen zu beginnen und sich durch die Liste zu arbeiten, bis Sie Ihr Problem gelöst haben. Der Audiodienst reagiert unter Windows 11 aus verschiedenen Gründen möglicherweise nicht mehr. Mithilfe dieser Liste können Sie die meisten Probleme überprüfen und beheben, die verhindern, dass Audiodienste unter Windows 11 reagieren. Bitte befolgen Sie die entsprechenden Abschnitte unten, um Ihnen durch den Prozess zu helfen. Methode 1: Starten Sie den Audiodienst neu

Für C++-Programmierer gehören Syntaxfehler zu den häufigsten Problemen. Einer der häufigsten Fehler besteht darin, dass const-Objekte zum Zeitpunkt der Definition initialisiert werden müssen. Wenn Sie auf diese Situation stoßen, wie sollten Sie damit umgehen? Zuerst müssen wir verstehen, was ein const-Objekt ist. Das Schlüsselwort const ist ein spezieller Typqualifizierer in C++, der angibt, dass der Wert einer Variablen während der Ausführung des Programms nicht geändert werden kann. Solche Variablen werden „Konstanten“ genannt. Wenn Sie ein const-Objekt definieren, ohne es zu initialisieren, tritt der obige Fehler auf. Das ist
