Heim > Backend-Entwicklung > PHP-Tutorial > Was ist der Unterschied zwischen define und const in PHP? (ausführliche Erklärung)

Was ist der Unterschied zwischen define und const in PHP? (ausführliche Erklärung)

不言
Freigeben: 2023-04-04 17:02:01
nach vorne
3979 Leute haben es durchsucht

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');
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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之后才有效
Nach dem Login kopieren
Ab PHP 5.6 const Arrays und Ausdrücke können ebenfalls akzeptiert werden
define können resource-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);
Nach dem Login kopieren

const, bei dem die Groß-/Kleinschreibung beachtet wird. define kann die Groß-/Kleinschreibung über den dritten Parameter steuern.

Ein paar andere Fragen

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!

Verwandte Etiketten:
php
Quelle:segmentfault.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage