Ordinary variables: automatically destroyed after the function is executed;
Static variables: will not be destroyed and retain the last value
Recommended manual : php complete self-study manual
Adding static in front of a variable constitutes a static variable (static variable). (Recommended learning: PHP programming from entry to proficiency)
The difference between static global variables and ordinary global variables: static global variables are only initialized once to prevent them from being referenced in other file units;
Static has nothing to do with the three attribute formats of public, protected, and private. They are not parallel.
Public, protected, and private can also be set to static
public static $a; private static $b;
Static variables have the following characteristics:
When a static variable is defined in a function, this variable will not be used the next time it is called even if the function exits. function, it uses the value left over from the last time it was called.
In addition, although the variable does not continue to exist when the function exits, it cannot be used outside the function.
Recommended related articles:
1.When are php static variables destroyed
2.What are the differences between static variables and global variables in PHP?
Related video recommendations:
1.Dugu Jiujian (4)_PHP video tutorial
Therefore, The application timing of static variables is as follows:
When a function is called multiple times and the values of certain variables are required to be retained between calls, static local variables can be considered.
Although global variables can also be used to achieve the above purpose, global variables sometimes cause unexpected side effects, so it is still better to use local static variables.
The basic function of static attributes is that unlike ordinary attributes, static attributes will remember the previous value. For example:
function a() { $a = 1; $a += 1; echo $a; } //然后连续3次调用这个函数测试下 a(); a(); a(); 上面代码会输出 2 2 2 改成静态属性: function a() { static $a = 1; $a += 1; echo $a; } //然后连续3次调用这个函数测试下 a(); a(); a();
The above will output 2 3 4
For static variables defined in a class, to put it simply, static members of the class can be used directly without instantiation.
The above is the detailed content of The difference between php static variables and variables. For more information, please follow other related articles on the PHP Chinese website!