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 .
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('PI', 3.14159); //定义一个名为PI的常量 echo PI; //输出:3.14159 ?>
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 ?>
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 = 'DEMO'; class Person{ const MAN = '男'; const WOMAN = '女'; } interface USB{ const VERSION_2 = '2.0'; const VERSION_3 = '3.0'; } ?>
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('DEFINE_VAR1', 1 << 1); //const CONST_VAR1 = (1 << 1); //const不支持位运算符,PHP会报语法错误 define('DEFINE_VAR2', 1 + 1); //const CONST_VAR2 = 1 + 1 ; //const不支持算术运算符,PHP会报语法错误 define('DEFINE_VAR3', 1 == 1); //const CONST_VAR3 = 1 == 1 ; //const不支持比较运算符,PHP会报语法错误 $value = 3; define('DEFINE_VAR4', $value); //const CONST_VAR4 = $value ; //const不支持变量形式的值,PHP会报语法错误 define('DEFINE_VAR5', true || false); //const CONST_VAR5 = true || false ; //const不支持逻辑运算符,PHP会报语法错误 define('DEFINE_VAR6', 'Hello'.' World!'); //const CONST_VAR6 = 'Hello'.' World!' ; //const不支持字符串运算符,PHP会报语法错误 class User{ }$user = new User();define('DEFINE_VAR7', $user instanceof User); //const CONST_VAR7 = $user instanceof User ; //const不支持类型运算符,PHP会报语法错误 ?>
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('Content-Type:text/html;charset=utf-8'); //define()的第3个参数为true时,表示大小写不敏感 define('SITE_NAME', 'CodePlayer', true); echo SITE_NAME; //输出:CodePlayer echo site_name; //输出:CodePlayer echo SiTe_NamE; //输出:CodePlayer const DOMAIN_NAME = '365mini.com'; echo DOMAIN_NAME; //输出:365mini.com echo domain_name; //PHP提示常量未定义 echo DomaIN_nAMe; //PHP提示常量未定义 ?>
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!