快速业务通道

php5中this,self,parent的意义

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-24
bsp;             print( $this->lastCount );
         }
    } //实例化对象
$countObject = new Counter();
$countObject->printLastCount(); //输出 1
?>
我 们这里只要注意两个地方,第6行和第12行。我们在第二行定义了一个静态变量$firstCount,并且初始值为0,那么在12行的时候调用了这个值 得,使用的是self来调用,并且中间使用"::"来连接,就是我们所谓的域运算符,那么这时候我们调用的就是类自己定义的静态变量$ frestCount,我们的静态变量与下面对象的实例无关,它只是跟类有关,那么我调用类本身的的,那么我们就无法使用this来引用,可以使用 self来引用,因为self是指向类本身,与任何对象实例无关。换句话说,假如我们的类里面静态的成员,我们也必须使用self来调用。 (3)parent 我们知道parent是指向父类的指针,一般我们使用parent来调用父类的构造函数。 <?php
//基类
class Animal
{
    //基类的属性
     public $name; //名字
    //基类的构造函数
    public function __construct( $name )
     {
         $this->name = $name;
      }
}
//派生类
class Person extends Animal //Person类继承了Animal类
{
    public $personSex; //性别
    public $personAge; //年龄
     //继承类的构造函数
     function __construct( $personSex, $personAge )
    {
           parent::__construct( "heiyeluren" ); //使用parent调用了父类的构造函数
          $this->personSex = $personSex;
         $this->personAge = $personAge;
    }
      function printPerson()
     {
           print( $this->name. " is " .$this->personSex. ",this year " .$this->personAge );
       }
}
//实例化Person对象
$personObject = new Person( "male", "21"); //执行打印
$personObject->printPerson(); //输出:heiyeluren is male,this year 21 ?>
我 们注意这么几个细节:成员属性都是public的,特别是父类的,是为了供继承类通过this来访问。我们注意关键的地方,第25行:parent:: __construct( "heiyeluren" ),这时候我们就使用parent来调用父类的构造函数进行对父类的初始化,因为父类的成员都是public的,于是我们就能够在继承类中直接使用 this来调用。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号