PHP中常用关键字public, private, protected, static...

PHP中常用的关键字:public, private, protected, static, interface, implements, final

1.public、protected、private

对属性或方法的访问控制,是通过在前面添加关键字 public(公有),protected(受保护)或 private(私有)来实现的。

public     被定义为公有的类成员可以在任何地方被访问。
protected  被定义为受保护的类成员则可以被其自身以及其子类和父类访问。
private    被定义为私有的类成员则只能被其定义所在的类访问。

2.static

静态变量

①静态变量仅在局部作用域中存在,当程序执行离开此作用域时,静态变量的值不丢失;
②static的作用就是能够实现变量或者方法在类中不需实例化的情况下调用;
③静态变量必须在声明为静态变量时初始化,否则静态变量将失去意义。
④静态属性只能被初始化为文字或常量,不能使用表达式

由于静态方法不需要通过对象即可调用,所以伪变量 $this 在静态方法中不可用;
静态属性不可以由对象通过 -> 操作符来访问。
静态延迟绑定

静态延迟绑定跟静态变量以及类静态方法等没有任何联系,静态延迟绑定中的"延迟绑定"是指 static:: 不再被解析为当前方法所在的类,而会被解析成运行时所计算出来的类。

class A {
    public static function who() {
        echo __CLASS__;
    }
    public static function test() {
        static::who(); // 后期静态绑定从这里开始
    }
}

class B extends A {
    public static function who() {
        echo __CLASS__;
    }
}

B::test();  //输出B

注意:(详情移步手册 后期静态绑定
①使用 self:: 或者 __CLASS__对当前类的静态引用,取决于定义当前方法所在的类;
②在非静态环境下,所调用的类即为该对象实例所属的类。由于 $this-> 会在同一作用范围内尝试调用私有方法,而 static:: 则可能给出不同结果。另一个区别是 static:: 只能用于静态属性;
③后期静态绑定的解析会一直到取得一个完全解析了的静态调用为止。另一方面,如果静态调用使用 parent:: 或者 self:: 将转发调用信息。

3.interface、implements

interface
①接口是通过 interface 关键字来定义的,就像定义一个标准的类一样,但其中定义所有的方法都是空的。
②接口中定义的所有方法都必须是公有,这是接口的特性。

implements

①要实现一个接口,使用 implements 操作符。
②类中必须实现接口中定义的所有方法,否则会报一个致命错误。
③类可以实现多个接口,用逗号来分隔多个接口的名称。
④实现多个接口时,多个接口的方法名不能重名
⑤接口也可以继承,通过extends操作符
⑥类要实现接口,必须使用和接口中所定义的方法完全一致的方式(包括方法名称、参数数量和类型等都必须一致)。否则会导致致命错误。

5.final

final只能够用来修饰class与function
class使用了final之后就不能够被继承,function使用了final之后不能在子类中被覆盖

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,838评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,493评论 18 399
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 7,618评论 0 11
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 11,947评论 0 62
  • 001拜访前先预约 贸然拜访是不符合礼仪之举的,拜访要先和主人预约并征得同意,在不打扰主人工作和生活的前提下上门拜...
    AirBlue_9d36阅读 2,900评论 2 9

友情链接更多精彩内容