"Call: $object->attribute/function, provided 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,"/> "Call: $object->attribute/function, provided 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,">
Home > Article > Backend Development > static variables Introduction to the use of static methods and static variables in PHP classes
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 that $this is not used in the method, that is, it is not called. Non-static variables/methods, of course, there is no problem in 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. Using class::… When calling static methods/variables, there is no need to execute a constructor to create an object;
3. Use class::... to call non-static methods/variables, and there is no need to execute a constructor to create an object.
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
The above has introduced the use of static variables, static methods and static variables in PHP classes, including the content of static variables. I hope it will be helpful to friends who are interested in PHP tutorials.