PHP中::、->、self、$this操作符的区别

在访问PHP类中的成员变量或方法时,如果被引用的变量或者方法被声明成const(定义常量)或者static(声明静态),那么就必须使用操作符::,反之如果被引用的变量或者方法没有被声明成const或者static,那么就必须使用操作符->。

另外,如果从类的内部访问const或者static变量或者方法,那么就必须使用自引用的self,反之如果从类的内部访问不为const或者static变量或者方法,那么就必须使用自引用的$this。

this,self,parent三个关键字从字面上比较好理解,分别是指这、自己、父亲。

http://zhidao.baidu.com/link?url=ofjCzDHpOZlO0ebclk9rwHOIKuSHnMdADSsePjjizEOPyJuW9ReIApyom5kYBx9-r948hgqOrG9YEpuNq0tPPa
this是指向当前对象的指针(姑且用C里面的指针来看吧)
self是指向当前类的指针
parent是指向父类的指针(我 们这里频繁使用指针来描述,是因为没有更好的语言来表达)

http://blog.csdn.net/skynet001/article/details/7518164

http://www.cnblogs.com/zcy_soft/archive/2010/10/16/1853239.html

PHP中::、-、self、$this操作符的区别相关推荐

  1. C#中Struct与Class的区别

    class和struct最本质的区别是class是引用类型,而struct是值类型,它们在内存中的分配情况有所区别. 什么是class? class(类)是面向对象编程的基本概念,是一种自定义数据结构 ...

  2. dart系列之:dart语言中的特殊操作符

    dart系列之:dart语言中的特殊操作符 文章目录 简介 普通操作符 类型测试操作符 条件运算符 级联符号 类中的自定义操作符 总结 简介 有运算就有操作符,dart中除了普通的算术运算的操作符之外 ...

  3. C++中 list与vector的区别

    C++中 list与vector的区别 引用http://www.cnblogs.com/shijingjing07/p/5587719.html C++ vector和list的区别 1.vecto ...

  4. js中的extend的用法及其JS中substring与substr的区别

    1.    JS中substring与substr的区别 之前在项目中用到substring方法,因为C#中也有字符串的截取方法Substring方法,当时也没有多想就误以为这两种方法的使用时一样的. ...

  5. python操作符op_详解python中的 is 操作符

    大家可以与Java中的 == 操作符相互印证一下,加深一下对引用和对象的理解.原问题: Python为什么直接运行和在命令行运行同样语句但结果却不同,他们的缓存机制不同吗? 其实,高票答案已经说得很详 ...

  6. 【java】深入理解Java JVM虚拟机中init和clinit的区别

    1.概述 转载并且补充:深入理解Java JVM虚拟机中init和clinit的区别 原创 之所以来转载一下,是因为,有个学弟问了这个问题 这个知识点,回顾起来应该是我看 深入理解Java JVM虚拟 ...

  7. C++的四种cast操作符的区别--类型转换

    C++的四种cast操作符的区别 发信站: 水木社区 (Thu Jan 26 21:15:16 2006), 站内 声明 by NetMD: 并非我的原创,来自互联网,且是两篇帖子的合集,个人觉得这样 ...

  8. C#中抽象类和接口的区别与应用场景

    一直对这两个基础概念没有很好的认识,在网上发现一个我能够理解的基础概念理解,存一下,反复看. C#中抽象类和接口的区别与应用场景一. 1.抽象类:抽象类是特殊的类,只是不能被实例化;和普通类一样里面什 ...

  9. C与C++中++i和i++的区别

    C与C++中++i和i++的区别 文章目录 C与C++中++i和i++的区别 前言 一.C++中区别 二.C中区别 前言 i++和++i很明显的区别就是:++i是先对i进行加一操作然后再返回i的值,而 ...

最新文章

  1. [新手必看] 17个常见的Python运行时错误
  2. 【转】nginx提示:500 Internal Server Error错误的解决方法
  3. 自动转换开关(ATS)在数据中心配电系统中的应用
  4. 分析大咖说 | 广告流量太烧钱?谨防“奥斯卡影帝”
  5. [C#]获得线程池中活动的线程数
  6. c语言成绩转换绩点,如何将平时成绩转化为GPA成绩?
  7. 感知器 机器学习_机器学习感知器实现
  8. 七easy网络陷阱上当
  9. 36个顶级数据分析方法与模型,学会任意1种,都能让你超越95%的人
  10. 鲁百年创新设计思维学习总结
  11. Ubuntu Temporary failure in name resolution 问题
  12. 全世界最高级最好的操作系统,人人都可以用
  13. android爬取英文单词发音,并在app中播放。(使用百度接口)
  14. 硅谷高效工作法 -知乎大学
  15. eclipse导入项目jsp文件报错
  16. ChatGPT团队揭秘:3清华、1北大、1华科
  17. 【Java】我的世界Java版外挂制作 [1] - 模块管理器与第一个模块
  18. 用python爬取全国和全球疫情数据,并进行可视化分析(过程详细代码可运行)
  19. hbase安装配置 整合到hadoop
  20. virtualbox安装时发生致命错误的解决方法

热门文章

  1. 独家制作!【AD封装】SIM卡座(带3D)全网最全!
  2. 不让登QQ恶作剧小程序
  3. 在k8s上安装calico时报错: no matches for kind “PodDisruptionBudget“ in version “policy/v1“
  4. 全球及中国成人口腔护理产品行业市场供给分析与投资战略规划研究报告2022-2028年
  5. Docker入门篇(一)
  6. 全新的移动互联网,互联网营销
  7. 百度网盘登录测试用例
  8. Arduino系列-Wemos D1 WIFI UNO R3开发版的智能家居
  9. 95后字节八年测开晒出工资单:狠补了这个,真香···
  10. 半导体传感器的零点漂移