Detailed explanation of this, self and parent keywords in PHP5_PHP tutorial

WBOY
Release: 2016-07-13 17:33:25
Original
754 people have browsed it

php(as the current mainstream development language)5 is a language that has the characteristics of most object-oriented languages, which is better than php(as the current mainstream development language)4 has a lot of object-oriented features, but some concepts are a bit confusing, so I will talk about it today. If I don’t explain it well, please forgive me. (To read this article, you need to understand php(As of now Mainstream development languages)5 object-oriented knowledge)

First of all, let’s understand the above three keywords: this, self, parent, which is easier to understand literally, refers to this, self, Father, haha, it’s more fun. Let’s establish a few concepts first. Where are these three keywords used? Let’s briefly explain that this is a pointer to the current object (let’s use the pointer in C to look at it. (bar), self is a pointer to the current class, and parent is a pointer to the parent class. We frequently use pointers to describe here because there is no better language to express it. Haha, I didn’t learn Chinese well. -_-#

It’s not very clear yet, so let’s talk about it based on actual examples.


(1) this

1 (as the current mainstream development language)
2
3 class UserName
4 {
5 //Define attributes
6 private $name;
7
8 //Define constructor
9 function __construct( $name )
10 {
11 $this->name = $name; //This pointer has been used here
12 }
13
14 //Destructor
15 function __destruct(){}
16
17 //Print username member function
18 function printName()
19 {
20 print( $this->name ); //This pointer is used again
21 }
22 }
23
24 //Instantiate the object
25 $nameObject = new UserName( "heiyeluren" );
26
27 //Perform printing
28 $nameObject->printName(); //Output: heiyeluren
29
30 //Second instantiation of object
31 $nameObject2 = new UserName( "php(as now Mainstream development languages)5" );
32
33 //Execute printing
34 $nameObject2->printName(); //Output: php(as the current Mainstream development languages)5
35 ?>

We see that the above class uses this pointer on lines 11 and 20 respectively, so who does this point to at that time? In fact, this determines who it points to when instantiating it. For example, when the object is instantiated for the first time (line 25), then this points to the $nameObject object. Then when printing on line 18, print( $this ->name ), then of course "heiyeluren" is output. In the second instance, print( $this->name ) becomes print( $nameObject2->name ), so "php(as the current mainstream development language) is output 5". Therefore, this is a pointer to the current object instance and does not point to any other object or class.

(2)self

First of all, we have to make it clear that self points to the class itself, that is, self does not point to any instantiated object. Generally, self is used to point to static variables in the class.

1 (as the current mainstream development language)
2
3 class Counter
4 {
5 //Define attributes, Includes a static variable
6          private static $firstCount = 0;
7                      private $lastCount; >12                                                                                                                                             lastCount =                                                                                   ++自特::$firstCount; // Use self to call static variables. When using self, you must use:: (field operation symbol) 15                                                                                                                                                   use using using using                     off ‐ off's off off ‐ ‐ ‐ ‐ t ‐ 15                                                                                                  

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/508642.htmlTechArticlephp (as the current mainstream development language) 5 is a language that has the characteristics of most object-oriented languages. , has many object-oriented features than PHP 4 (as the current mainstream development language)...
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template