Home > Article > Backend Development > The difference between Define and Const in PHP
This article mainly introduces the difference between Define and Const in PHP. It has a certain reference value. Now I share it with you. Friends in need can refer to it.
We often change values that do not change frequently. Defined as a constant, constants are generally expressed in all capital letters without a dollar sign in front. So what is the difference between define and const?
A constant is a simple identifier. This value cannot be changed during script execution (except for so-called magic constants, which are not constants). Constants are case-sensitive by default. Normally constant identifiers are always uppercase.
You can use the define() function to define constants. After php5.3.0, you can use the const keyword to define constants outside the class definition. In php7, you can define array constants. In previous versions, the const keyword can only be used in classes. Once a constant is defined, it cannot be changed or undefined.
<?php // 以下代码在 PHP 5.3.0 后可以正常工作 const USERNAME = '周伯通'; echo USERNAME.PHP_EOL; echo constant("USERNAME"); const ZHOUUSERNAME = '周伯通九阴真经';define('MYUSERNAME','周伯通九阴真经2'); echo "<pre class="brush:php;toolbar:false">"; print_r(get_defined_constants()); ?>
The differences between constants and variables are as follows:
1. const is a language structure; define is a function, which can Specify whether to be case sensitive through the third parameter. true means case insensitivity, the default is false
2. const is simple and easy to read, and it is much faster to compile than define.
3. Const can be used in classes and is used to define class member constants. It cannot be modified after definition; define cannot be used in classes and can be used for global variables
<?php class MyClass { const USER = '周伯通'; function showConstant() { echo self::USER . PHP_EOL; echo constant('USER'); // 注意:Warning: constant(): Couldn't find constant USER } } $class = new MyClass(); $class->showConstant();
4. const is defined at compile time, so it must be in the topmost scope and cannot be used in functions, loops and if conditions; while define It is a function, that is, it can be used wherever a function can be called.
<?php $x = true; if ($x==1){ //const FOO = 'BAR'; // 无效的invalid } if ($x==1){ define('FOO', 'BAR'); // 有效的valid echo FOO; }
The above is the entire content of this article. I hope it will be helpful to everyone's learning. , please pay attention to the PHP Chinese website for more related content!
Related recommendations:
ob_start usage analysis in PHP
Explanation of PHP empty() function
The above is the detailed content of The difference between Define and Const in PHP. For more information, please follow other related articles on the PHP Chinese website!