Der Inhalt dieses Artikels befasst sich mit der Frage, was der Unterschied zwischen define und const in PHP ist. (Ausführliche Erklärung), es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.
Es gibt zwei Möglichkeiten, Konstanten in PHP zu definieren: define und const. Was ist der Unterschied zwischen den beiden?
const CONSTANCE = 'const'; define('CONSTANCE', 'const');
Das Schlüsselwort const kann ab PHP 5.3 Konstanten außerhalb der Klassendefinition definieren.
const kann innerhalb der Klasse definiert werden, define jedoch nicht.
Die durch const definierten Konstanten befinden sich im aktuellen Namespace, und define muss den Namespace für die Ausführung definieren und der spezifische Namespace muss geschrieben werden.
class Foo { const BAR = 2; } class Foo2 { define("BAR", 3); //无效的 } //命名空间的示例 namespace A{ const A1 = 1; //处在命名空间A中 define('A2', 2); //全局可调用 define('A\A3', 3); //处在命名空间A中 } namespace B{ use const \A\A1; use const \A\A3; echo A1; echo A2; //全局调用 echo A3; }
const definiert Konstanten in der Kompilierungsphase, define definiert Konstanten in der Vorverarbeitungsphase
const definiert Konstanten in der Kompilierungsphase und muss sich auf der höchsten Ebene befinden, wenn Konstanten definieren Top-Wirkungsbereich.
Daher kann es nicht in bedingten Anweisungen wie if definiert werden.
define definiert Konstanten, auch Makrodefinitionen genannt. Makros können so beschrieben werden, dass sie bestimmte Textmuster gemäß einer Reihe vordefinierter Regeln ersetzen.
define kann in einer Verzweigung vorhanden sein.
Theoretisch ist die Verwendung von const etwas schneller als die Definition.
const akzeptiert nur Skalardaten (wie Ganzzahl, String, Boolescher Wert und Float usw.); define kann jeden Ausdruck akzeptieren
define('BIT_5', 1<<5); const BIT_5 = 1<<5; //5.6之后才有效
Ab PHP 5.6const
Arrays und Ausdrücke können ebenfalls akzeptiert werdendefine
könnenresource
-Typen akzeptieren,const
nicht
Const-Konstantennamen können nur einfache Zeichen sein , define Es kann ein beliebiger Ausdruck sein
const STR = 'string'; $i = 1; define("STR_" . $i, STR);
const, bei dem die Groß-/Kleinschreibung beachtet wird. define kann die Groß-/Kleinschreibung über den dritten Parameter steuern.
Können durch const und define definierte konstante Arrays die darin enthaltenen Elemente ändern?
Können Sie definiert verwenden, um durch const definierte Konstanten zu überprüfen?
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen define und const in PHP? (ausführliche Erklärung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!