The difference in usage of this self static in PHP

零到壹度
Release: 2023-03-23 10:36:01
Original
1398 people have browsed it

This article mainly introduces the difference between this self static in PHP. The editor thinks it is quite good. Now I will share it with you and give it as a reference. Let’s follow the editor and take a look.

INTRODUCTION

I was doing software engineering course design recently, and I encountered a problem. I went to pick up the Laravel source code and searched again, and found that it was a self static Problems arise because of poor understanding, so record them to avoid making the same mistakes again.

Text

this

this is easier to understand. It points to the current object and is used to access the non-static variables and non-static methods of the current object. It is related to the object. ;

name; } } $p = new Person(); $p2 = new Person(); $p->name = "小红"; $p2->name = "小明"; $p->getName(); // 小红 $p2->getName(); // 小明
Copy after login

In the above example, two objects are new and the name attributes of the objects are set respectively. This is used in getName() to access the name attribute of the current object, so the name values are output respectively. Therefore, this points to the current object and does not point to other objects or classes.

self

self is different from this. It points to the class itself and does not point to any instantiated object. It is generally used to access static variables and static methods in the class;


        
Copy after login

In the above example, two objects are new, and the name attribute of one object is modified. The name attribute value of the other object is also changed. Therefore, self points to the current class and has nothing to do with the object. All objects share one value. .

static

static is the same as self, both point to the class, and are generally used to access static variables and static methods in the class, but there are some differences. Specifically: self writes In which class, this class is actually called; static is written in the parent class, and then this static is used through the subclass. This static points to this subclass, which is officially calledLate static binding.

say(); // World $b->saySelf(); // Hello $b->sayStatic(); // World
Copy after login

As you can see from the above example, self is written in class A, and it points to class A when called. static is also written in class A, but it is called with an object of class B, a subclass of class A. When it is used, it points to class B. When it is used, static determines which class it points to. This islate static binding.

Late static binding

Summary

this points to the current object, used to access the non-static variables and non-static methods of the current object;
self points to the class, generally Used to access static variables and static methods of the current class, which class it points to has been determined before running;
static points to the class, generally used to access static variables and static methods of the current class, butis not limited toA static call determines which class it points to at runtime.

The above is the detailed content of The difference in usage of this self static in PHP. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
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
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!