Home >Backend Development >PHP Tutorial >Static methods and static variables of PHP classes

Static methods and static variables of PHP classes

WBOY
WBOYOriginal
2016-07-29 09:02:101146browse

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 Variables/methods are 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, there is no call 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 an 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 introduces the static methods and static variables of the PHP class, including the content. I hope it will be helpful to friends who are interested in PHP tutorials.

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