Wie definiere ich Konstanten in PHP? Was ist der Unterschied

青灯夜游
Freigeben: 2023-03-09 20:36:01
Original
3626 Leute haben es durchsucht

Methoden zum Definieren von Konstanten: const oder define(). Unterschiede: 1. define kann sowohl in PHP4 als auch in PHP5 verwendet werden, während const nur in PHP 5.3.0 und späteren Versionen verwendet werden kann. 2. Die durch define() definierten Konstanten werden bei der Ausführung von define() definiert, const jedoch nicht .

Wie definiere ich Konstanten in PHP? Was ist der Unterschied

Die Betriebsumgebung dieses Tutorials: Windows7-System, PHP5-Version, DELL G3-Computer

Wie wir alle wissen, können wir in PHP (PHP 4 und höher) die Funktion define() verwenden, um Konstanten zu definieren. zum Beispiel:

<?php
define(&#39;PI&#39;, 3.14159);  //定义一个名为PI的常量

echo PI;    //输出:3.14159
?>
Nach dem Login kopieren

Nach PHP 5.3.0 können wir jedoch zusätzlich zur Verwendung der Funktion define() auch das PHP-Schlüsselwort const verwenden, um Konstanten zu definieren.

Zum Beispiel:

<?php
//以下代码需在PHP 5.3.0及之后的版本中运行
const PI = 3.14159; //使用const关键字定义一个名为PI的常量
echo PI;    //输出:3.14159
?>
Nach dem Login kopieren

Obwohl beide oben genannten Methoden Konstanten definieren können, was sind die Unterschiede zwischen ihnen? Lassen Sie uns nacheinander den Unterschied zwischen der Funktion define() und dem Schlüsselwort const in PHP zum Definieren von Konstanten erklären:

Zuallererst besteht kein Zweifel daran, dass es Versionsunterschiede zwischen den beiden Möglichkeiten zum Definieren von Konstanten gibt. Die Funktion define( ) ist in PHP4 und kann in PHP5 verwendet werden. Das Schlüsselwort const kann nur in PHP 5.3.0 und späteren Versionen verwendet werden.

Zweitens: Da die durch die Funktion define() definierten Konstanten definiert werden, wenn die Funktion define() ausgeführt wird, kann die Funktion define() zum Definieren von Konstanten überall dort verwendet werden, wo die Funktion aufgerufen werden kann, beispielsweise innerhalb einer Funktion eine Schleife, innerhalb einer if-Anweisung usw. . Im Gegensatz zu define() muss sich die durch das Schlüsselwort const definierte Konstante im obersten Bereich befinden, da die durch das Schlüsselwort const definierte Konstante zur Kompilierungszeit definiert wird. Dies bedeutet auch, dass const nicht zum Definieren von Konstanten innerhalb von Funktionen, Schleifen und if-Anweisungen verwendet werden kann.

<?php
//使用const关键字定义常量必须处于最顶端的作用区域
//也就是可以在编译时直接解析定义的地方
const DEMO = &#39;DEMO&#39;;
class Person{
    const MAN = &#39;男&#39;;
    const WOMAN = &#39;女&#39;;
}

interface USB{
    const VERSION_2 = &#39;2.0&#39;;
    const VERSION_3 = &#39;3.0&#39;;
}
?>
Nach dem Login kopieren

Obwohl die durch die Schlüsselwörter const und define() definierten konstanten Werte nur Null- oder Skalardaten (boolesche, ganzzahlige, float- und string-Typen) und Ressourcentypen sein können (es wird nicht empfohlen, Konstanten vom Ressourcentyp zu definieren, andernfalls kann es zu unvorhersehbaren Ereignissen kommen). Da jedoch die durch das Schlüsselwort const definierte Konstante zur Kompilierungszeit definiert wird, unterstützt der Ausdruck des durch das Schlüsselwort const definierten Konstantenwerts keine arithmetischen Operatoren, bitweisen Operatoren, Vergleichsoperatoren und andere Operatoren, und diese Operatoren können direkt verwendet werden beim Definieren von Konstanten in der Funktion define().

<?php
define(&#39;DEFINE_VAR1&#39;, 1 << 1);
//const CONST_VAR1 = (1 << 1); //const不支持位运算符,PHP会报语法错误

define(&#39;DEFINE_VAR2&#39;, 1 + 1);
//const CONST_VAR2 = 1 + 1 ; //const不支持算术运算符,PHP会报语法错误

define(&#39;DEFINE_VAR3&#39;, 1 == 1);
//const CONST_VAR3 = 1 == 1 ; //const不支持比较运算符,PHP会报语法错误

$value = 3;
define(&#39;DEFINE_VAR4&#39;, $value);
//const CONST_VAR4 = $value ; //const不支持变量形式的值,PHP会报语法错误

define(&#39;DEFINE_VAR5&#39;, true || false);
//const CONST_VAR5 = true || false ; //const不支持逻辑运算符,PHP会报语法错误

define(&#39;DEFINE_VAR6&#39;, &#39;Hello&#39;.&#39; World!&#39;);
//const CONST_VAR6 = &#39;Hello&#39;.&#39; World!&#39; ; //const不支持字符串运算符,PHP会报语法错误

class User{ 
}$user = new User();define(&#39;DEFINE_VAR7&#39;, $user instanceof User);
//const CONST_VAR7 = $user instanceof User ; //const不支持类型运算符,PHP会报语法错误
?>
Nach dem Login kopieren

Zusätzlich zu den oben genannten 3 Unterschieden gibt es auch einen weniger auffälligen Unterschied. Die Funktion define() kann den dritten Parameter empfangen. Wenn dieser Parameter wahr ist, bedeutet dies, dass beim Konstantennamen die Groß-/Kleinschreibung nicht beachtet wird. Die Verwendung des Schlüsselworts const zum Definieren von Konstanten bietet jedoch keine ähnliche Funktionalität.

<?php
//设置编码为UTF-8,以避免中文乱码
header(&#39;Content-Type:text/html;charset=utf-8&#39;);

//define()的第3个参数为true时,表示大小写不敏感
define(&#39;SITE_NAME&#39;, &#39;CodePlayer&#39;, true);
echo SITE_NAME; //输出:CodePlayer
echo site_name; //输出:CodePlayer
echo SiTe_NamE; //输出:CodePlayer

const DOMAIN_NAME = &#39;365mini.com&#39;;
echo DOMAIN_NAME;   //输出:365mini.com
echo domain_name;   //PHP提示常量未定义
echo DomaIN_nAMe;   //PHP提示常量未定义
?>
Nach dem Login kopieren

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWie definiere ich Konstanten in PHP? Was ist der Unterschied. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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