为什么80%的码农都做不了架构师?>>>   

<?php

/**
 * 静态调用非静态方法
 */
class Test{
    
    public static function testStatic(){
        echo "test";
    }
    
    public function testNotStatic(){
        echo "test2"; //静态调用非静态方法,不推荐但是可以效率很慢
    }
}

Test::testStatic();
echo "***";
$a = 'Test';
$a::testStatic(); //赋给变量也可以
echo "***";
Test::testNotStatic();//静态调用非静态方法,不应该但是可以效率很慢

/**
 * 延迟加载,使用static关键字在父类中引用扩展类的最终状态
 */
class ParentClass{
    static $property = 'Parent value';
    
    public static function getProperty(){
        return static::$property;   //使用static,获得最终状态值
    }
    
    public static function getCallClass(){
        return get_called_class();  //获得从那个派生类中调用
    }
}

class ChildClass extends ParentClass{
    static $property = 'Child value';
}

var_dump( ChildClass::getProperty() ); //获得扩展中最终值   Child value

var_dump( ChildClass::getCallClass() ); //获得扩展中从那个派生类调用  ChildClass
?>

转载于:https://my.oschina.net/solate/blog/716290

php学习笔记之static的问题相关推荐

  1. Java学习笔记之static

    1.static可以用于修饰成员变量.方法以及块,并不会改变类中成员的权限修饰,如:private修饰的成员变量,类外只能类名或非私有方法调用,而不能使用对象名调用. 2.static方法和成员变量, ...

  2. C++ 【学习笔记】 - 基础(class、inline、explict、new、delete、static、this、mutable、friend、operator、virtual)

    上上一篇:java全家桶 上一篇:C语言 [学习笔记] - 基础.理论(原码/反码/补码).函数(字符串.定义).指针.内存(函数.结构).复合类型.函数(调用原理.指针.接口) 视频:https:/ ...

  3. Unity之C#学习笔记(11):静态类型 Static

    前篇链接:Unity之C#学习笔记(10):接口和多态 Interfaces and Polymorphism 静态类型(Static)用一句话概括就是:在程序运行期间只会被创建一份的通用内容,用关键 ...

  4. java学习笔记day07 成员变量与局部变量、形式参数、匿名对象、封装、private、this、构造方法、类详细讲解、static

    java学习笔记day07 1.成员变量和局部变量的区别 定义变量的注意事项 2.形式参数⭐ [P175] 形参是个类名,要的其实是一个对象 3.匿名对象(了解即可) 4.封装 class Stude ...

  5. 知识图谱学习笔记(1)

    知识图谱学习笔记第一部分,包含RDF介绍,以及Jena RDF API使用 知识图谱的基石:RDF RDF(Resource Description Framework),即资源描述框架,其本质是一个 ...

  6. Programming C# 学习笔记(二) 出发:“Hello World”

    小序:      准备写这章的学习笔记了,啊,Hello World!多么亲切的语句,呵呵,当初学C语言的第一个程序就是输出它, 还记得费了好大劲终于把它输出来时候的那种兴奋感觉,真是让我怀念哦!(然 ...

  7. atomic原子类实现机制_JUC学习笔记--Atomic原子类

    Atomic 原子操作类包 Atomic包 主要是在多线程环境下,无锁的进行原子操作.核心操作是基于UnSafe类实现的CAS方法 CAS CAS: compareAndSwap :传入两个值:期望值 ...

  8. kvm虚拟化学习笔记(十七)之KVM到KVM之v2v迁移

    1.源KVM虚拟主机node1 (1).查看源KVM虚拟主机上的虚拟机列表,本文计划将CentOS6.5-01虚拟机迁移到其它KVM虚拟主机中. [root@node1 ~]# virsh list ...

  9. Lua学习笔记6:C++和Lua的相互调用

    曾经一直用C++写代码.话说近期刚换工作.项目组中的是cocos2dx-lua,各种被虐的非常慘啊有木有. 新建cocos2dx-lua项目.打开class能够发现,事实上就是C++项目啦,只是为什么 ...

最新文章

  1. dsp-asic-fpga
  2. 【实操】路由选择工具ACL
  3. 10道Python面试常见的问题
  4. 推荐系统常用术语 [ACM暑校]
  5. 【译】为什么我更喜欢对象而不是switch语句
  6. [Asp.net core 3.1] 通过一个小组件熟悉Blazor服务端组件开发
  7. OpenGL 库 简介
  8. 【BZOJ2655】calc,dp+拉格朗日插值法
  9. 特斯拉员工薪酬曝光 最低54万元!
  10. C/C++中struct/union/class内存对齐
  11. 1. 2020年《DeepMind&UCL深度学习讲座》第1讲:机器学习和AI入门【中文字幕】
  12. 如何对待新事物_以积极态度看待不断出现的新事物
  13. 企企通SRM项目再获肯定,助力迈金科技一站式数字化采购平台成功上线
  14. 最新的Fresco加载Gif图片
  15. Dae-Da-Lus小组idea集锦
  16. 基于百度英伟达EasyDL公开课的学习笔记
  17. 一阶电路和二阶电路的时域分析(1)——“电路分析”
  18. 简历中尽量不要出现精通_在个人简历中,熟悉了解熟练,精通都是一种什么程度...
  19. 自动化测试的生命周期是什么?
  20. 拨号界面代码_第1部分-拨号界面

热门文章

  1. 体感Kinect手势识别开发基本原理
  2. 直接用Win32 API创建对话框Demo
  3. 用按键精灵自动消除行号失败记
  4. C#实现注册码功能编程总结
  5. JSP标准标签库JSTL总结
  6. Python 实例方法、类方法、静态方法的区别与作用
  7. Canvas知识点汇总
  8. ubuntu命令安装jdk
  9. bzoj3522 Hotel
  10. SPSS数据记录的选择(Select Cases)