php 中self,this的区别和操作方法实例分析


Posted in PHP onNovember 04, 2019

本文实例讲述了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+MYSQL的文章管理系统(一)
Oct 09 PHP
PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
May 18 PHP
php通过COM类调用组件的实现代码
Jan 11 PHP
检查用户名是否已在mysql中存在的php写法
Jan 20 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
Feb 13 PHP
PHP中使用数组指针函数操作数组示例
Nov 19 PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
May 12 PHP
php记录搜索引擎爬行记录的实现代码
Mar 02 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
Feb 28 PHP
PHP实现一个限制实例化次数的类示例
Sep 16 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
Oct 16 PHP
PHP const定义常量及global定义全局常量实例解析
May 28 PHP
PHP 文件写入和读取操作实例详解【必看篇】
Nov 04 #PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
Nov 04 #PHP
php ZipArchive实现多文件打包下载实例
Oct 31 #PHP
Laravel框架实现抢红包功能示例
Oct 31 #PHP
laravel框架实现后台登录、退出功能示例
Oct 31 #PHP
TP5框架简单登录功能实现方法示例
Oct 31 #PHP
Laravel框架实现即点即改功能的方法分析
Oct 31 #PHP
You might like
php数据结构与算法(PHP描述) 查找与二分法查找
2012/06/21 PHP
Linux环境下搭建php开发环境的操作步骤
2013/06/17 PHP
Yii中表单用法实例详解
2016/01/05 PHP
基于jquery的jqDnR拖拽溢出的修改
2011/02/12 Javascript
基于jQuery的倒计时插件代码
2011/05/07 Javascript
JS两种定义方式的区别、内部原理
2013/11/21 Javascript
js控制网页前进和后退的方法
2015/06/08 Javascript
JavaScript实现添加、查找、删除元素
2015/07/02 Javascript
详解JavaScript的回调函数
2015/11/20 Javascript
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
2016/12/19 Javascript
webpack 样式加载的实现原理
2018/06/12 Javascript
vue实现城市列表选择功能
2018/07/16 Javascript
搭建vue开发环境
2018/07/19 Javascript
vue - vue.config.js中devServer配置方式
2019/10/30 Javascript
vue中的过滤器及其时间格式化问题
2020/04/09 Javascript
vue使用map代替Aarry数组循环遍历的方法
2020/04/30 Javascript
Sublime Text3 配置 NodeJs 环境的方法
2020/05/20 NodeJs
从零开始在vue-cli4配置自适应vw布局的实现
2020/06/08 Javascript
[01:12:27]EG vs Secret 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
利用Python的Django框架中的ORM建立查询API
2015/04/20 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
2018/10/21 Python
钉钉群自定义机器人消息Python封装的实例
2019/02/20 Python
python读csv文件时指定行为表头或无表头的方法
2019/06/26 Python
Django框架序列化与反序列化操作详解
2019/11/01 Python
CSS3不透明度实例讲解
2016/04/26 HTML / CSS
HTML5自定义元素播放焦点图动画的实现
2019/09/25 HTML / CSS
夏尔巴人登珠峰品牌:Sherpa Adventure Gear
2018/02/08 全球购物
Lacoste(法国鳄鱼)加拿大官网:以标志性的POLO衫而闻名
2019/05/15 全球购物
手工制作的男士奢华英国鞋和服装之家:Goodwin Smith
2019/06/21 全球购物
应征英语教师求职信
2013/11/27 职场文书
淘宝中秋节活动方案
2014/01/31 职场文书
志愿者服务感言
2014/02/27 职场文书
投资建议书模板
2014/05/12 职场文书
毕业证委托书范文
2014/09/26 职场文书
民事答辩状格式范文
2015/05/21 职场文书
2016继续教育研修日志
2015/11/13 职场文书