I saw such an article on the Qingyuan Education website a few days ago. I feel it is particularly helpful to php developers like me. I post it now, hoping to help everyone. In addition, Qingyuan There are many such technical articles on the education website. If you are interested, you can check it out. Okay, without further ado, let’s get to the point:
In PHP, there are two ways to access class methods/variables:
1. Create the 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 not to use $this in the method, that is, no non-static variables/methods are called. Of course, there is no problem in calling static variables/methods.
Then let’s 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 still 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.
I hope this article will be helpful to the majority of php developers, thank you for reading this article. For more php technical issues welcome to join the group to discuss: 256271784, verification code: cxy, if you don’t write the verification, it will not be passed~
|