博主信息
多波
博文
2
粉丝
0
评论
5
访问量
5606
积分:0
P豆:14

什么时候用this,什么时候用self

2019年09月26日 16:14:58阅读数:1796博客 / 多波/ php语言

this不能调用静态属性
self::不能调用非静态属性


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

反之如果被引用的变量或者方法没有被声明成const或者static,那么就必须使用操作符->。
另外,如果从类的内部访问const或者static变量或者方法,那么就必须使用自引用的self,
反之如果从类的内部访问不为const或者static变量或者方法,那么就必须使用自引用的$this。

结论 :  self与$this的功能极其相似,但二者又不相同。$this不能引用静态成员和常量。self更像类本事,而$this更像是实例本身。

版权申明:本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!

全部评论

文明上网理性发言,请遵守新闻评论服务协议

条评论
phpcn_u66312
  • phpcn_u66312· 2018-01-21 11:32:214楼
  • $的位置:self::$name \n $this->name

  • 回复
  • phpcn_u66312
  • phpcn_u66312· 2018-01-21 11:18:543楼
  • 在类中用:引用本类的静态属性或方法:self::name ;self::getName() 在类外用:使用类名 ,而不是类的引用self, Demo::proName,Demo::method()

  • 回复
  • phpcn_u66312
  • phpcn_u66312· 2018-01-21 11:15:272楼
  • this引用的是当前对象,self引用的是当前类

  • 回复
  • phpcn_u66312
  • phpcn_u66312· 2018-01-21 11:14:111楼
  • :: 访问类成员 ->访问对象成员

  • 回复
  • Javascript在一些情况下是需要使Set的。下面本篇文章就带大家了解一下Set,介绍一下是Set、使 Set、Set的数据操作(交集、差集、交集、对称差集)。
    是NaN会返回NaN判断NaN参考是NaN在MDN的NaN文章中有描述:全局属性NaN表示 Not-A-Number的值。
    使vuex的是如果您需要构建是一个中大型单页应,您很可能会考虑如何更好地在组件外部管理状态,Vuex将会成为自然而然的选择。
    使vue.use的间:它在使实际是调了该插件的install方法,所以引入的当前插件如果含有install方法我们就需要使【Vue.use()】。
    css应当使padding的:1、需要在border内测添加空白;2、空白处需要填充背景(色);3、上下相连的两个盒子之间的空白,希望等于两者之和
    使vue.js的情况:1、如果需要使模板构建应程序,那请选择Vue;2、如果需要简单的能正常工作的,那请选择Vue;3、如果需要程序更小更快,那请选择Vue。
    你去网上一搜,他们都会告诉你需要 gunicorn或者是uwsgi 来部署。 那gunicorn、uwsgi 又是玩意。本文将详细介绍WSGI。
    是泛型,怎使,有好处?答:泛型是一种把类型明确的工作推迟到创建对象或者调方法的才去明确的特殊的类型。它于参数化类型,把类型当做参数一样的传递。
    在为函数传递参数和函数定义使参数的常会看到有和 *和**,它们有区别和作呢?下面就分别讲解其作
    for循环执行方法:首先执行初始化操作;然后判断终止条件是否满足,如果满足则执行循环体中的语句;最后执行迭代部分,完成一次循环后,重新判断终止条件。
    数组扁平化这一概念大家都了解,但在实际写代码的是否思考过应该怎实现它?或者说实现它的我们能收获呢? 我们尽量多种方法达到我们的目的,主流的,非主流的都搞一搞~
    大家在初学数据库,对DQL中的连接查询是否有些疑惑,不知道场景下该那种连接查询?
    当css样式于不止一个元素,使class来定义;当css样式只应于一个元素,使id来定义。
    java入门教程:本文为大家介绍了关于final关键字在使需要注意问题的相关知识,具有一定的参考价值,希望可以帮助到大家。被final修饰的类不可以被继承,被final修饰的方法不可以被重写。
    JQuery click()和onclick()区别:1、onclick是绑定事件,告诉浏览器在鼠标点击要做;2、click方法的主要作是触发调click方法元素onclick事件。
    php8发布?PHP开发者非常期待,2020.6.25号 PHP团队发布了首个测试版本 Alpha1(PHP 8.0.0),预示着PHP8正式启动发布周期!
    Connolly”创立的一种标记语言,它是标准通化标记语言SGML的应,而HTML编写的超文本文档就称为HTML文档。
    ThinkPHP5.0 Beta是在2015年12月11日发布的,ThinkPHP5.0.5完整版是在2017年02月27日发布的。ThinkPHP是一个免费、开源、快速、简单、面向对象的轻量级PHP开发框架。
    微信是2011年1月21日上线的,是腾讯公司推出的一个为智能终端提供即通讯服务的免费应程序 ,由张小龙所带领的腾讯广州研发中心产品团队打造 ;微信支持跨通信运营商、跨操作系统平台通过网络快速发送免费语音短信
    vue3.0版本与其他版本完全不同,它最大限度的减少了开发人员配置工具的次数,另外增添了许多丰富的内置功能,还附带了一个完整的GUI于创建和管理项目。