php中this,parent,self关键字用法
发布:smiling 来源: PHP粉丝网 添加日期:2014-07-25 10:44:49 浏览: 评论:0
this,parent,self都是在php中的class类中了,下面我来分别介绍this,parent,self在类中用应用与区别。
一,this
1,要用this,你必有是一个对像的形势,不然它会报错的,Fatal error: Using $this when not in object context.
2,this可以调用本类中的方法和属性,也可以调用父类中的可以调的方法和属性,代码如下:
- <?php
- class UserName
- {
- //定义属性
- private $name;
- //定义构造函数
- function __construct( $name )
- {
- $this->name = $name;
- //这里已经使用了this指针
- }
- //析构函数
- function __destruct(){}
- //打印用户名成员函数
- function printName()
- {
- print( $this->name );
- //又使用了PHP关键字this指针
- }
- }
- //实例化对象
- $nameObject = new UserName
- ( "heiyeluren" );
- //执行打印
- $nameObject->printName();
- //输出: heiyeluren
- //第二次实例化对象
- $nameObject2 = new UserName( "PHP5" );
- //执行打印
- $nameObject2->printName(); //输出:PHP5
- ?>
我们看,上面的类分别在11行和20行使用了this指针,那么当时this是指向谁呢?其实this是在实例化的时候来确定指向谁,比如第一次实例化对象 的时候(25行),那么当时this就是指向$nameObject对象,那么执行18行的打印的时候就把print($this-><name )变成了print($nameObject->name),那么当然就输出了"heiyeluren".
二,self
self是指向类本身,也就是PHP self关键字是不指向任何已经实例化的对象,一般self使用来指向类中的静态变量.
1,self可以访问本类中的静态属性和静态方法,可以访问父类中的静态属性和静态方法。
2,用self时,可以不用实例化的,代码如下
- <?php
- class Counter
- {
- //定义属性,包括一个静态变量
- private static $firstCount = 0;
- private $lastCount;
- //构造函数
- function __construct()
- {
- $this->lastCount = ++selft
- ::$firstCount;
- //使用PHP self关键字来调用静态变量,使用self
- 调用必须使用::(域运算符号)
- }
- //打印最次数值
- function printLastCount()
- {
- print( $this->lastCount );
- }
- }
- //实例化对象
- $countObject = new Counter();
- $countObject->printLastCount();
- //输出 1
- ?>
三,parent
parent:: 可用于调用父类中定义的成员方法。
parent::的追溯不仅于直接父类。
通过parent::调用父类方法,代码如下:
- <!-- 声明一个员工类,经理类继承自员工类 -->
- <?
- class employee{
- protected $sal=3000;
- public function getSal(){
- $this->sal = $this->sal + 1200;
- return $this->sal ;
- }
- }
- class Manager extends employee {
- //如果想让经理在员工工资的基础上多发1500元.
- //必须先调用父类的getSal()方法.
- public function getSal(){
- parent::getSal();// 这里调用了父类的方法.
- $this->sal = $this->sal + 1500;
- return $this->sal ;
- }
- }
- $emp = new employee();
- echo "普通员工的工资是 " . $emp->getSal();
- echo "<br>";
- $manager = new Manager();
- echo "经理的工资是: " . $manager->getSal();
- ?>
parent是指向父类的指针,一般我们使用parent来调用父类的构造函数.
Tags: this parent self 关键字用法
- 上一篇:PHP框架模板原理分析
- 下一篇:PHP中的魔术方法总结
相关文章
- ·php中$this、static、final、const、self的用法(2014-02-10)
- ·php面向对象 $this关键字用法详解(2014-02-20)
- ·PHP $this变量一些理解(2014-02-21)
- ·PHP面向对象(OOP)编程:this的特殊用法(2015-12-12)
- ·PHP面向对象程序设计中的self、static、parent关键字用法分析(2021-12-11)
- ·php中new self()关键字的用法(2016-08-18)
- ·PHP中static关键字以及与self关键字的区别(2021-06-06)
- ·php面向对象编程self和static的区别(2021-08-01)
- ·PHP后期静态绑定之self::限制实例分析(2021-11-02)
- ·php面向对象程序设计中self与static的区别分析(2021-11-22)
- ·PHP中的self关键字详解(2021-11-27)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)