在学PHP的面向对象中,我们经常都会遇到静态变量和静态方法,我们都知道使用在一个类中都可以使用self或者static来调用,但是两者还是有很明显的区别,下面来看两段代码就清楚了。

<?php/*** self demo*/
class SelfDemo
{public static function model(){self::getModel();}protected static function getModel(){echo "self model". "<br>";}
}SelfDemo::model();class SelfDemoExtend extends SelfDemo
{protected static function getModel(){echo "self extend model" . "<br>";}
}SelfDemoExtend::model();复制代码

执行结果如下:
self model
self model

<?php/*** static demo*/
class StaticDemo
{public static function model(){static::getModel();}protected static function getModel(){echo "static model" . "<br>";}
}StaticDemo::model();class StaticDemoExtend extends StaticDemo
{protected static function getModel(){echo "static extend model" . "<br>";}
}StaticDemoExtend::model();复制代码

执行结果如下:
static model
static extend model

从上面的两个例子可以很明显的看出,self和static的区别,其区别主要是self只能引用当前类,说白了就是self在哪个类,就引用那个类,而static关键字能够允许在运行时动态绑定类方法,在调用static,子类哪怕调用的是父类的方法,但是父类方法中调用的方法还会是子类的方法

PHP的self和static区别相关推荐

  1. vue 项目引用static目录资源_vuejs-templates静态资源目录src/assets、和static/区别

    src/assets/和static/区别和用法 一句话总结:第三方资源都放在static文件夹中(如脚本库),自己在项目中使用的一些资源都放在assets中 文档传送门: vuejs-templat ...

  2. vue 项目引用static目录资源_Vue2.0项目入门 — 静态资源目录src/assets和static/区别...

    rose.png 你应该注意到了,在项目结构上我们有静态资源两个目录:src/assets和static/.他们之间有什么区别? 通过webpack处理的资源 首先我们需要了解webpack如何处理静 ...

  3. JAVA基础--final、static区别以及类加载顺序

    一.JAVA中final 与 static 总结 final static 修饰类 该类不可被继承 只能修饰内部类,该类不需要new,是静态加载(嵌套顶层类) 修饰接口 × × 修饰构造函数 × × ...

  4. STATIC_URL/STATIC_ROOT/STATICFILES_DIRS/urls.py中的static区别

    工程名字是: mysite 变量 修改位置 STATIC_URL mysite/settings.py STATIC_ROOT  mysite/settings.py STATICFILES_DIRS ...

  5. java static 区别_Java中static和final的区别

    static是静态修饰关键字,可以修饰变量和程序块以及类方法: 当定义一个static的变量的时候jvm会将将其分配在内存堆上,所有程序对它的引用都会指向这一个地址而不会重新分配内存: 当修饰一个程序 ...

  6. inet manual 和 static 区别

    iface eth0 inet static : 为eth0定义静态ip地址 iface eth0 inet manual: 创建一个无ip地址的eth0, 通常作为网桥

  7. java aio为什么不稳定_为什么我不提倡在Java中使用static

    static从Java1.0开始便是Java中的关键字,用于表征静态属性或方法.它也得到了广泛的应用,在业务中定义XXXUtil是一种常规的模式,甚至是比较知名的类库(比如Apache Common ...

  8. php new static 效率,对比 PHP 中 new static() 与 new self()

    通过new static()与new self()都能产生实例对象,new static()是在PHP5.3版本中引入的新特性,本文对二者稍作对比. 一.当直接通过本类创建实例时class Test ...

  9. C语音static、const、voilate和位运算

    目录 一 static 1 在C语言中 2 在C++中,多了以下两点 3 静态数据成员可以成为成员函数的可选参数,普通数据成员不可以 4 静态数据成员的类型可以是所属类的类型,普通数据成员不可以 5 ...

最新文章

  1. R语言dplyr包连接多个dataframe实战:使用left_join
  2. 【 C 】在双链表中插入一个新值的简明程序
  3. 原生mysql的批量更新及性能测试
  4. mongoose 通过账号密码连接 Error: Password contains an illegal unescaped character
  5. Linux pwd命令:显示当前路径
  6. 28-hadoop-hbase入门小程序
  7. 鸿蒙是否会开源,鸿蒙会不会开源?鸿蒙终于迎来新发展
  8. 收藏 | 可解释机器学习发展和常见方法!
  9. PHP - Smarty
  10. Hutool之类型转换类——Convert
  11. MySQL常用命令操作大全
  12. scala构造器的介绍
  13. 计算机软件系统崩溃,系统崩溃,解决系统崩溃的方法全集
  14. cdr 表格自动填充文字_Cdr教程 用CorelDRAW绘制百事可乐标志Logo设计教程
  15. Python获取多核CPU温度 均值
  16. ellipse 标签
  17. springboot房屋租赁管理系统的设计与实现
  18. React 基础案例 | 支持左右按钮点击查看信息的卡片组件(二)
  19. 数字电子技术1:数字逻辑概论
  20. 云计算考证笔记、集群特性、HA

热门文章

  1. 鼓励参与计算机考试宣传标语,考试宣传标语
  2. oracle赋值当前时间,Oracle数据库时间类型
  3. 2022年造价员土建工程考试模拟试题卷及答案
  4. chcon mysql_Linux中的SELinux与chcon以及Samba实现【转】
  5. 仲恺农业工程学院计算机专业怎么样,仲恺农业工程学院好就业吗?附学校就业率最高的专业名单...
  6. hanlp源码解读之字符正规化CharTable
  7. Win10系统开机黑屏解决方案
  8. Hadoop组件之MapReduce作用及设计原理
  9. 数据库系统概论知识点总结
  10. 负载均衡集群、高可用集群详解,DR、NAT超详细搭建步骤