无为清净楼资源网 Design By www.qnjia.com

本文实例讲述了php 中self,this的区别和操作方法。分享给大家供大家参考,具体如下:

面向对象编程(OOP,Object OrientedProgramming)现已经成为编程人员的一项基本技能。利用OOP的思想进行PHP的高级编程,对于提高PHP编程能力和规划web开发构架都是很有意义的。

这里我主要谈的是this,self关键字之间的区别。从字面上来理解,分别是指这、自己。先初步解释一下,this是指向当前对象的指针(可以看成C里面的指针),self是指向当前类的指针。我们这里频繁使用指针来描述

因为经常用框架的缘故,所以对php底层的一些运行机制和方法都不会了,所以最近比较喜欢研究这些底层的东西,写的东西虽然不是很好,但是自己一步步实地操作过来的,理解起来也比较容易,现在网上大多数的资料要么就是按照手册抄过来很官方的一些话,要么就是那些千篇一律的文章,确实有些不好理解,所以只能自己动手来熟悉啦

一. self

1.self可以访问本类中的静态属性和静态方法,可以访问父类中的静态属性和静态方法。用self时,可以不用实例化的

class self_test {
  static $instance;
  public function __construct(){
    self::$instance = 'instance';//静态属性只能通过self来访问
  }
  public function tank(){
    return self::$instance;//访问静态属性
  }
}
$str = new self_test();
echo $str->tank();

页面输出:

instance

class self_test {
  static $instance;
  public function __construct(){
    self::$instance = 'dell';
  }
  static public function pentium(){
    return self::$instance;//静态方法也可以继续访问静态变量,访问时需要加$
  }
  public function tank(){
    return self::pentium();//访问静态方法pentium()
  }
}
$str = new self_test();
echo $str->tank();

页面输出:

dell

2.self可以访问const定义的常量

class self_test {
  const NAME = 'tancy';
  public function tank(){
    return self::NAME;
  }
}
$str = new self_test();
echo $str->tank();

页面输出:

tancy

二.this

1.this可以调用本类中的方法和属性,也可以调用父类中的可以调的方法和属性,可以说除过静态和const常量,基本上其他都可以使用this联络

class self_test {
  public $public;
  private $private;
  protected $protected;
  public function __construct(){
    $this->public = 'public';
    $this->private = 'private';
    $this->protected = 'protected';
  }
  public function tank(){
    return $this->public;
  }
  public function dell(){
    return $this->private;
  }
  public function datesrt(){
    return $this->protected;
  }
}
$str = new self_test();
echo $str->tank();
echo "</br>";
echo $str->dell();
echo "</br>";
echo $str->datesrt();

页面输出:

public
private
protected

一句话,self是引用静态类的类名,而$this是引用非静态类的实例名。

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

标签:
php,self,this,区别,操作

无为清净楼资源网 Design By www.qnjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
无为清净楼资源网 Design By www.qnjia.com

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。