php中self和$this还有parent的区别
2024-10-21 23:20:07
1.self代表类,$this代表对象
2.能用$this的地方一定使用self,能用self的地方不一定能用$this
3.parent只能调用静态属性,并且可以调用父类中公有和受保护的方法
静态的方法中不能使用$this,静态方法给类访问的。
今天在使用静态方法的时候,使用了$this去调用对象的属性,导致曝出错误信息,在网上查询了手册和百度,
发现大部分回答只是说明了在静态方法中不允许使用$this,只能使用self,较为靠谱的回答说明是$this是实例化对象的指针,self是对象的指针。
针对以上信息,综合自己的学习知识和网上搜索结果作下图:
其中,我们可以明显看到,self调用的类的指针,而非实例化后的对象指针,静态变量和静态方法始终属于类,而非属于实例化后的对象,因此在静态方法中无法使用$this,因为此时所处的位置是类所在的指针,只能使用self调用静态方法或者静态变量。
如果要在静态方法中,强制使用函数的其他方法,则只能先实例化一个新的对象,然后再使用该对象的方法。
综上所述,self调用的是类,而$this调用的则是实例化的对象。下面是代码。
最新文章
- java 堆栈分析3
- [cf621E]Wet Shark and Blocks
- DedeCms完美的FLASH幻灯代码
- 尼姆博弈HDU1907
- Discuz X3.2 分区 gid 完美伪静态方法 Apache/Nginx
- Android LogCat使用详解
- iOS-iPhone系统版本号-iPhone App版本号
- php5.6解决curl扩展不生效的问题
- JS学习之动态加载script和style样式
- eclipse快捷键 自己使用简单总结
- Philosophy is systematic reflective thinking on life.
- linux_通配符
- fcode-页面九宫格自动锁屏jquery插件
- LoadRunner录制手机APP教程
- Struts(二十八):自定义拦截器
- Python爬虫入门项目
- Function program language
- elasticsearch6.7 05. Document APIs(5)Delete By Query API
- pycharm工具下代码下面显示波浪线的去处方法
- Linux 内核引导选项简介