2019独角兽企业重金招聘Python工程师标准>>>

self是关键字,而$this是一个变量,表示当前对象,也就是你能直接把$this返回实现链式调用.

$this->foo也是一个变量,表示当前对象里名为foo的成员.

而self::$foo表示类里面名为foo的变量.

self其实就相当于类名,parent相当于父类名,都是在类里面使用的关键字.

<?php
class foo {const a = '类的常量'; // PHP 5.3public static $b = '类的静态变量';public $c = '对象的变量';// 类的普通方法既能访问静态变量,也能访问普通变量.// 而类的静态方法不能访问类的非静态变量和非静态方法.public function bar() {return array(self::a,self::$b,$this->c);}
}
$foo = new foo();
echo foo::a  . "\n"; // 类的常量
echo foo::$b . "\n"; // 类的静态变量
echo $foo->c . "\n"; // 对象的变量
var_export($foo->bar()); // 输出:

输出的内容如下:

array (0 => '类的常量',1 => '类的静态变量',2 => '对象的变量',
)

转载于:https://my.oschina.net/feanlau/blog/1518922

为什么 PHP 中 this 和 self 访问变量的写法不一样?相关推荐

  1. Python中的包以及跨目录访问变量和函数(同级目录)

    包 1.包是一种管理python模块命名空间的形式,采用"点语法",避免文件或者文件夹的命名冲突的情况 可以创建一个目录,在目录下面创建一个名称为  __init__.py的文件( ...

  2. 如何在SSIS的脚本组件中访问变量

    原文:如何在SSIS的脚本组件中访问变量 这是一个小问题,我们在SSIS的设计中很多地方都会用到变量,我习惯性地将"变量"和"表达式"称为SSIS的灵魂,虽然不 ...

  3. python类中包含一个特殊的变量、它可以访问类的成员_区域联防的运用中遵循并贯彻以球为主的防守原则,做到球人区三者兼顾。( )...

    刘墉书法的特点是用墨厚重,体丰骨劲,浑厚敦实,别具面目.A:对B:错 Python类中包含一个特殊的变量(),它表示当前对象自身,可以访问类的成员.A:meB:selfC:thisD:与类同名 在过火 ...

  4. python类中包含一个特殊的变量、它可以访问类的成员_Python类中包含一个特殊的变量( ),它表示当前对象自身,可以访问类的成员....

    包含票务系统的业务管理主要内容包括()A:运营监督B:规则管理C:信息管理D:财务管理E:模式管理 特殊表嘌呤核苷酸补救合成途径的主要器官是().A:脑组织B:小肠C:胸腺D:肝脏E:肾脏 示当身嘌呤 ...

  5. c语言指针访问 静态变量_使用C中的指针访问变量的值

    c语言指针访问 静态变量 As we know that a pointer is a special type of variable that is used to store the memor ...

  6. 转:在 .NET 中实现异步回调访问数据库

    在 .NET 中实现异步回调访问数据库 时间:2009-11-17 19:52来源:网络收集 作者:佚名 点击: 334 次 技术论坛 某些场合下,在对数据库进行访问时,为了避免同步访问数据时所带来的 ...

  7. 深入理解Java中为什么内部类可以访问外部类的成员

    内部类简介 虽然Java是一门相对比较简单的编程语言,但是对于初学者, 还是有很多东西感觉云里雾里, 理解的不是很清晰.内部类就是一个经常让初学者感到迷惑的特性. 即使现在我自认为Java学的不错了, ...

  8. python变量必须以字母和下划线_【转载】关于python中带下划线的变量和函数的意义...

    Python 的代码风格由 PEP 8 描述.这个文档描述了 Python 编程风格的方方面面.在遵守这个文档的条件下,不同程序员编写的 Python 代码可以保持最大程度的相似风格.这样就易于阅读, ...

  9. 如何使用Linux内核中没有被导出的变量或函数

    更多文章目录:点击这里 GitHub地址:https://github.com/ljrkernel Linux 内核为了减少命名空间的污染,并做到正确的信息隐藏,内核提供了管理内核符号可见性的方法.不 ...

最新文章

  1. Angular 路由
  2. 【单片机相关】的网站
  3. 如何评价模型的好坏(一)
  4. centos7下kubernetes(6。运行应用)
  5. 往sde中导入要素类报错000732
  6. MyBatis:事务回滚
  7. matlab控制realsense,RealSense开发学习--1.初识RealSense
  8. eclipse分级,分级列表显示 - bieshixuan的个人博客 - OSCHINA - 中文开源技术交流社区...
  9. iTerm – 让你的命令行也能丰富多彩
  10. 更改计算机语言win7,windows7专业版怎么更改语言_如何更改windows7专业版语言
  11. C51单片机——指令系统
  12. 【回顾】推荐系统工程师技能树
  13. 用计算的方式,求两个数之间的最大值和最小值
  14. EnableQ,细腻让其与众不同
  15. STM32F107VCT6开发板 CAN总线通信实验----发送和接收
  16. sudo rosdep init 出现 ERROR: cannot download default sources list from:错误解决方法
  17. 论文复现——PFLD——人脸关键点检测
  18. 多年收藏的经典笑料,现在转帖出来
  19. 国内哪里培训python比较好-最好的Python培训机构是哪家?
  20. Android 配置文件锁设置

热门文章

  1. EnforceLearning-主动强化学习
  2. OpenCV实现连通域
  3. Online ML那点事-!
  4. 14.查看信息深入讲解
  5. PHP快速排序(原地切分)
  6. ABBYY FineReader 12可以内置自动化任务吗
  7. window.parent ,window.top,window.self 详解
  8. 如何提高数据库访问效率
  9. spring boot configuration annotation processor not found in classpath问题解决
  10. java.lang.ClassCastException: cannot assign instance of java.lang.invoke.SerializedLambda to field