zoukankan      html  css  js  c++  java
  • php中self和$this还有parent的区别

    1.self代表类,$this代表对象

    2.能用$this的地方一定使用self,能用self的地方不一定能用$this

    3.parent只能调用静态属性,并且可以调用父类中公有和受保护的方法

    静态的方法中不能使用$this,静态方法给类访问的。

    今天在使用静态方法的时候,使用了$this去调用对象的属性,导致曝出错误信息,在网上查询了手册和百度,

    发现大部分回答只是说明了在静态方法中不允许使用$this,只能使用self,较为靠谱的回答说明是$this是实例化对象的指针,self是对象的指针。

    针对以上信息,综合自己的学习知识和网上搜索结果作下图:

    其中,我们可以明显看到,self调用的类的指针,而非实例化后的对象指针,静态变量和静态方法始终属于类,而非属于实例化后的对象,因此在静态方法中无法使用$this,因为此时所处的位置是类所在的指针,只能使用self调用静态方法或者静态变量。

    如果要在静态方法中,强制使用函数的其他方法,则只能先实例化一个新的对象,然后再使用该对象的方法。

    综上所述,self调用的是类,而$this调用的则是实例化的对象。下面是代码。

  • 相关阅读:
    deepin15.11安装Oracle JDK
    API文档-BASE-BASE
    miniui控件的el属性(自动生成的标签)
    miniui从继承看控件处理
    miniui中的继承
    miniui加载(二)
    miniui 加载文件时会做的一些事情
    二、运行盛派的Demo(看下效果)
    一、选择云服务器和测试微信公众号Token
    绘制圆角(2)
  • 原文地址:https://www.cnblogs.com/ziyandeyanhuo/p/12330037.html
Copyright © 2011-2022 走看看