Home > Article > Backend Development > Introduction to the use of static methods and static variables in PHP classes_PHP tutorial
In PHP, there are two ways to access class methods/variables:
1. Create an object $object = new Class(), and then use "->" to call: $object->attribute/function, provided that The variable/method is accessible.
2. Directly call class methods/variables: class::attribute/function, whether static or non-static. But there are prerequisites:
A. If it is a variable, the variable needs to be accessible.
B. If it is a method, in addition to the method being accessible, it also needs to meet:
b1) If it is a static method, there are no special conditions;
b2) If it is a non-static method, it needs to be changed if it is not used in the method. $this means that non-static variables/methods are not called. Of course, there is no problem with calling static variables/methods.
Then let’s take a look at the difference between using $object->… and using class::…:
1. When using $object->…, you need to execute the constructor to create the object;
2. Use class::... to call static methods/variables, without executing the constructor to create objects;
3. Use class::... to call non-static methods/variables, and there is no need to execute the constructor to create objects.
Then the strange thing comes out. Since 2 and 3 are the same, what is the point of the existence of static methods/variables?
The differences obviously exist, as follows:
1. Static variables
Static members only retain one variable value, and this variable value is valid for all instances, that is, all instances share this member.
2. Static methods
Static methods can be called directly using class::..., while non-static methods need to meet certain restrictions before they can be called using class::.. methods, as mentioned before