w3pop.com :: ÍøÂçѧԺ :: PHP :: PHP5 this,selfºÍparent¹Ø¼ü×ÖÏê½â
PHP5 this,selfºÍparent¹Ø¼ü×ÖÏê½â
::
PHP5ÊÇÒ»¾ß±¸Á˴󲿷ÖÃæÏò¶ÔÏóÓïÑÔµÄÌØÐÔµÄÓïÑÔ,±ÈPHP4ÓÐÁ˺ܶàµÄÃæÏò¶ÔÏóµÄÌØÐÔ,µ«ÊÇÓв¿·Ö¸ÅÄîÒ²±È½ÏÈÆÈË,ËùÒÔ½ñÌìÄóöÀ´ËµËµ,˵µÄ²»ºÃ,Çë¸ßÊÖ¼ûÁÂ. (ÔĶÁ±¾ÎÄ£¬ÐèÒªÁ˽âPHP5µÄÃæÏò¶ÔÏóµÄ֪ʶ)
Ê×ÏÈÎÒÃÇÀ´Ã÷°×ÉÏÃæÈý¸ö¹Ø¼ü×Ö: this,self,parent,´Ó×ÖÃæÉϱȽϺÃÀí½â,ÊÇÖ¸Õâ,×Ô¼º,¸¸Ç×,ºÇºÇ,±È½ÏºÃÍæÁË,ÎÒÃÇÏȽ¨Á¢¼¸¸ö¸ÅÄî,ÕâÈý¸ö¹Ø¼ü×Ö·Ö±ðÊÇÓÃÔÚʲôµØ·½ ÄØ?ÎÒÃdzõ²½½âÊÍÒ»ÏÂ,thisÊÇÖ¸Ïòµ±Ç°¶ÔÏóµÄÖ¸Õë(ÎÒÃǹÃÇÒÓÃCÀïÃæµÄÖ¸ÕëÀ´¿´°É),selfÊÇÖ¸Ïòµ±Ç°ÀàµÄÖ¸Õë,parentÊÇÖ¸Ïò¸¸ÀàµÄÖ¸Õë¡£ÎÒ ÃÇÕâÀïÆµ·±Ê¹ÓÃÖ¸ÕëÀ´ÃèÊö£¬ÊÇÒòΪûÓиüºÃµÄÓïÑÔÀ´±í´ï£¬ºÇºÇ£¬ÓïÎÄûѧºÃ¡£ -_-#
Õâô˵»¹²»ÄܺÜÁ˽⣬ÄÇÎÒÃǾ͸ù¾Ýʵ¼ÊµÄÀý×Ó½áºÏÀ´½²½²¡£
1 <?php
2
3 class UserName
4 {
5 //¶¨ÒåÊôÐÔ
6 private $name;
7
8 //¶¨Òå¹¹Ô캯Êý
9 function __construct( $name )
10 {
11 $this->name = $name; //ÕâÀïÒѾʹÓÃÁËthisÖ¸Õë
12 }
13
14 //Îö¹¹º¯Êý
15 function __destruct(){}
16
17 //´òÓ¡Óû§Ãû³ÉÔ±º¯Êý
18 function printName()
19 {
20 print( $this->name ); //ÓÖʹÓÃÁËthisÖ¸Õë
21 }
22 }
23
24 //ʵÀý»¯¶ÔÏó
25 $nameObject = new UserName( "heiyeluren" );
26
27 //Ö´ÐдòÓ¡
28 $nameObject->printName(); //Êä³ö: heiyeluren
29
30 //µÚ¶þ´ÎʵÀý»¯¶ÔÏó
31 $nameObject2 = new UserName( "PHP5" );
32
33 //Ö´ÐдòÓ¡
34 $nameObject2->printName(); //Êä³ö£ºPHP5
35 ?>
ÎÒÃÇ¿´£¬ÉÏÃæµÄÀà·Ö±ðÔÚ11ÐкÍ20ÐÐʹÓÃÁËthisÖ¸Õ룬ÄÇôµ±Ê±thisÊÇÖ¸ÏòËÄØ£¿ÆäʵthisÊÇÔÚʵÀý»¯µÄʱºòÀ´È·¶¨Ö¸ÏòË£¬±ÈÈçµÚÒ»´ÎʵÀý»¯¶Ô ÏóµÄʱºò(25ÐÐ)£¬ÄÇôµ±Ê±this¾ÍÊÇÖ¸Ïò$nameObject¶ÔÏó£¬ÄÇôִÐÐ18ÐеĴòÓ¡µÄʱºò¾Í°Ñprint( $this-><name )±ä³ÉÁËprint( $nameObject->name )£¬ÄÇôµ±È»¾ÍÊä³öÁË"heiyeluren"¡£µÚ¶þ¸öʵÀýµÄʱºò£¬print( $this->name )±ä³ÉÁËprint( $nameObject2->name )£¬ÓÚÊǾÍÊä³öÁË"PHP5"¡£ËùÒÔ˵£¬this¾ÍÊÇÖ¸Ïòµ±Ç°¶ÔÏóʵÀýµÄÖ¸Õ룬²»Ö¸ÏòÈÎºÎÆäËû¶ÔÏó»òÀà¡£
Ê×ÏÈÎÒÃÇÒªÃ÷È·Ò»µã£¬selfÊÇÖ¸ÏòÀà±¾Éí£¬Ò²¾ÍÊÇselfÊDz»Ö¸ÏòÈκÎÒѾʵÀý»¯µÄ¶ÔÏó£¬Ò»°ãselfʹÓÃÀ´Ö¸ÏòÀàÖеľ²Ì¬±äÁ¿¡£
1 <?php
2
3 class Counter
4 {
5 //¶¨ÒåÊôÐÔ£¬°üÀ¨Ò»¸ö¾²Ì¬±äÁ¿
6 private static $firstCount = 0;
7 private $lastCount;
8
9 //¹¹Ô캯Êý
10 function __construct()
11 {
12 $this->lastCount = ++selft::$firstCount; //ʹÓÃselfÀ´µ÷Óþ²Ì¬±äÁ¿,ʹÓÃselfµ÷ÓñØÐëʹÓÃ::(ÓòÔËËã·ûºÅ)
13 }
14
15 //´òÓ¡×î´ÎÊýÖµ
16 function printLastCount()
17 {
18 print( $this->lastCount );
19 }
20 }
21
22 //ʵÀý»¯¶ÔÏó
23 $countObject = new Counter();
24
25 $countObject->printLastCount(); //Êä³ö 1
26
27 ?>
ÎÒÃÇÕâÀïֻҪעÒâÁ½¸öµØ·½£¬µÚ6Ðк͵Ú12ÐС£ÎÒÃÇÔÚµÚ¶þÐж¨ÒåÁËÒ»¸ö¾²Ì¬±äÁ¿$firstCount£¬²¢ÇÒ³õʼֵΪ0£¬ÄÇôÔÚ12ÐеÄʱºòµ÷ÓÃÁËÕâ¸öÖµ µÃ£¬Ê¹ÓõÄÊÇselfÀ´µ÷Ó㬲¢ÇÒÖмäʹÓÃ"::"À´Á¬½Ó£¬¾ÍÊÇÎÒÃÇËùνµÄÓòÔËËã·û£¬ÄÇôÕâʱºòÎÒÃǵ÷ÓõľÍÊÇÀà×Ô¼º¶¨ÒåµÄ¾²Ì¬±äÁ¿$ frestCount£¬ÎÒÃǵľ²Ì¬±äÁ¿ÓëÏÂÃæ¶ÔÏóµÄʵÀýÎ޹أ¬ËüÖ»ÊǸúÀàÓйأ¬ÄÇôÎÒµ÷ÓÃÀà±¾ÉíµÄµÄ£¬ÄÇôÎÒÃǾÍÎÞ·¨Ê¹ÓÃthisÀ´ÒýÓ㬿ÉÒÔʹÓà selfÀ´ÒýÓã¬ÒòΪselfÊÇÖ¸ÏòÀà±¾Éí£¬ÓëÈκζÔÏóʵÀýÎ޹ء£»»¾ä»°Ëµ£¬¼ÙÈçÎÒÃǵÄÀàÀïÃæ¾²Ì¬µÄ³ÉÔ±£¬ÎÒÃÇÒ²±ØÐëʹÓÃselfÀ´µ÷Óá£
ÎÒÃÇÖªµÀparentÊÇÖ¸Ïò¸¸ÀàµÄÖ¸Õ룬һ°ãÎÒÃÇʹÓÃparentÀ´µ÷Óø¸ÀàµÄ¹¹Ô캯Êý¡£
1 <?php
2
3 //»ùÀà
4 class Animal
5 {
6 //»ùÀàµÄÊôÐÔ
7 public $name; //Ãû×Ö
8
9 //»ùÀàµÄ¹¹Ô캯Êý
10 public function __construct( $name )
11 {
12 $this->name = $name;
13 }
14 }
15
16 //ÅÉÉúÀà
17 class Person extends Animal //PersonÀà¼Ì³ÐÁËAnimalÀà
18 {
19 public $personSex; //ÐÔ±ð
20 public $personAge; //ÄêÁä
21
22 //¼Ì³ÐÀàµÄ¹¹Ô캯Êý
23 function __construct( $personSex, $personAge )
24 {
25 parent::__construct( "heiyeluren" ); //ʹÓÃparentµ÷ÓÃÁ˸¸ÀàµÄ¹¹Ô캯Êý
26 $this->personSex = $personSex;
27 $this->personAge = $personAge;
28 }
29
30 function printPerson()
31 {
32 print( $this->name. " is " .$this->personSex. ",this year " .$this->personAge );
33 }
34 }
35
36 //ʵÀý»¯Person¶ÔÏó
37 $personObject = new Person( "male", "21");
38
39 //Ö´ÐдòÓ¡
40 $personObject->printPerson(); //Êä³ö£ºheiyeluren is male,this year 21
41
42 ?>
ÎÒÃÇ×¢ÒâÕâô¼¸¸öϸ½Ú£º³ÉÔ±ÊôÐÔ¶¼ÊÇpublicµÄ£¬ÌرðÊǸ¸ÀàµÄ£¬ÊÇΪÁ˹©¼Ì³ÐÀàͨ¹ýthisÀ´·ÃÎÊ¡£ÎÒÃÇ×¢Òâ¹Ø¼üµÄµØ·½£¬µÚ25ÐУºparent:: __construct( "heiyeluren" ),ÕâʱºòÎÒÃǾÍʹÓÃparentÀ´µ÷Óø¸ÀàµÄ¹¹Ô캯Êý½øÐжԸ¸ÀàµÄ³õʼ»¯£¬ÒòΪ¸¸ÀàµÄ³ÉÔ±¶¼ÊÇpublicµÄ£¬ÓÚÊÇÎÒÃǾÍÄܹ»Ôڼ̳ÐÀàÖÐÖ±½ÓʹÓà thisÀ´µ÷Óá£
thisÊÇÖ¸Ïò¶ÔÏóʵÀýµÄÒ»¸öÖ¸Õ룬selfÊǶÔÀà±¾ÉíµÄÒ»¸öÒýÓã¬parentÊǶԸ¸ÀàµÄÒýÓá£