Home  >  Article  >  Backend Development  >  What is the difference between php constants and static variables

What is the difference between php constants and static variables

WBOY
WBOYOriginal
2022-02-10 15:36:483275browse

The difference between constants and static variables in php: 1. Constants are immutable quantities, while static variables can be assigned and changed through self; 2. In terms of compilation efficiency, the compilation process of constants is faster, while The compilation process for static variables is slower.

What is the difference between php constants and static variables

The operating environment of this tutorial: windows10 system, PHP7.1 version, DELL G3 computer

What is the difference between php constants and static variables

In terms of efficiency: the constant compilation process is much faster than static variables.

Code:

<?php
error_reporting(E_ALL);
class A {
 
    const c = 9;
    public static $b = 5;
 
    public function setst ($ca) {
        self::$b = $ca;
    }
}
 
$obj = new A;
echo $obj->c;//出错,是类的属性,不是对象的属性
echo $obj->$b;//出错,是类的属性,不是对象的属性
echo $obj::c;//ok,
echo A::c;//ok
echo $obj::$b;//ok
echo A::$b;//ok
$obj->setst(100);//更改静态变量的值
echo $obj::$b;//更改成功
 
?>

Conclusion:

Only the properties of the instance can be accessed using $obj->c.

Static variables and constants are attributes of a class. Class attributes are accessed using double colons (::), and can be accessed through object or class names.

Constants are immutable, and static variables can be assigned and changed through self.

const constants: immutable attributes of a class

static variables: variable attributes of a class

Recommended learning: "PHP Video Tutorial"

The above is the detailed content of What is the difference between php constants and static variables. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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