The difference between php const and define, phpconstdefine_PHP tutorial

WBOY
Release: 2016-07-12 08:58:34
Original
890 people have browsed it

The difference between php const and define, phpconstdefine

Original address: http://www.manongjc.com/article/491.html

const is used for the definition of class member constants, which cannot be changed after definition. With define, we define global constants, so that we can access them in other places but cannot change them. We will list some details below. Come out

Note: define cannot be defined in a class, but const must be defined in a class, and const must be accessed through class name::variable name


1. Const is used to define class member variables. Once defined, its value cannot be changed. define defines global constants that can be accessed anywhere.
2. define cannot be defined in a class but const can.
3. Const cannot define constants in conditional statements

4. const uses an ordinary constant name, and define can use an expression as the name.
5. const can only accept static scalars, while define can use any expression.
6. const is always case-sensitive, however define() can use the third parameter to define case-insensitive constants
7. Using const is simple and easy to read. It itself is a language structure, while define It is a method, using const definition is much faster than define at compile time.

define defines constants. What if we define constants in a class? Of course, you cannot use define, but use const, as in the following example:

<?<span>php
</span><span>//</span><span>在类外面通常这样定义常量</span>
<span>define</span>("PHP","111cn.net"<span>);
</span><span>class</span><span> MyClass
{
    </span><span>//</span><span>常量的值将始终保持不变。在定义和使用常量的时候不需要使用$符号</span>
    <span>const</span> <span>constant</span> = 'constant value'<span>;
 
    </span><span>function</span><span> showConstant() {
        </span><span>echo</span>  self::<span>constant</span> . "<br>"<span>;
    }
}
 
</span><span>echo</span> MyClass::<span>constant</span> . "<br>"<span>;
 
</span><span>$classname</span> = "MyClass"<span>;
</span><span>echo</span> <span>$classname</span>::<span>constant</span> . "<br>"; <span>//</span><span> PHP 5.3.0之后</span>
 
<span>$class</span> = <span>new</span><span> MyClass();
</span><span>$class</span>-><span>showConstant();
</span><span>echo</span> <span>$class</span>::<span>constant</span>."<br>"; <span>//</span><span> PHP 5.3.0之后
//print_r(get_defined_constants());  //可以用get_defined_constants()获取所有定义的常量</span>
?>
Copy after login

Generally define defines constants outside the class, const defines constants within the class, and const must be accessed through class name::variable name. However, php5.3 and above support defining constants through const outside the class, as shown below, this is OK:

<?<span>php
    </span><span>const</span> a = "abcdef"<span>;
    </span><span>echo</span><span> a;
</span>?>
Copy after login

I won’t go into the basic knowledge about constants here. In addition to the above, other differences between define and const (taken from the Internet):

1.const cannot define constants in conditional statements, but define is possible, as follows:

<?<span>php
    </span><span>if</span>(1<span>){
        </span><span>const</span> a = 'java'<span>;
    }
    </span><span>echo</span> a;  <span>//</span><span>必错</span>
?>
Copy after login

2.const uses an ordinary constant name, define can use an expression as the name

<?<span>php
</span><span>const</span>  FOO = 'PHP'<span>; 
</span><span>for</span> (<span>$i</span> = 0; <span>$i</span> < 32; ++<span>$i</span><span>) { 
    </span><span>define</span>('PHP_' . <span>$i</span>, 1 << <span>$i</span><span>); 
} 
</span>?>
Copy after login

3.const can only accept static scalars, while define can take any expression.

<?<span>php
</span><span>const</span> PHP = 1 << 5;    <span>//</span><span> 错误</span>
<span>define</span>('PHP', 1 << 5); <span>//</span><span> 正确 </span>
?>
Copy after login

4.const itself is a language structure. And define is a function. So using const is much faster.

Two common synchronizations: both cannot be reassigned.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1102851.htmlTechArticleThe difference between php const and define, phpconstdefine Original address: http://www.manongjc.com/article/491. html const is used for the definition of class member constants. It cannot be changed after definition. We define define...
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!