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:: 将转发调用信息。

interface

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

②接口中定义的所有方法都必须是公有,这是接口的特性。

implements

①要实现一个接口,使用 implements 操作符。

②类中必须实现接口中定义的所有方法,否则会报一个致命错误。

③类可以实现多个接口,用逗号来分隔多个接口的名称。

④实现多个接口时,多个接口的方法名不能重名

⑤接口也可以继承,通过extends操作符

⑥类要实现接口,必须使用和接口中所定义的方法完全一致的方式(包括方法名称、参数数量和类型等都必须一致)。否则会导致致命错误。

5.final

final只能够用来修饰class与function

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

php中public放什么,PHP中常用关键字public, private, protected, static...相关推荐

  1. PHP Class中public,private,protected,static的区别

    PHP Class中public,private,protected,static的区别 public:权限是最大的,可以内部调用,实例调用,可以被继承. protected:受保护类型,用于本类和继 ...

  2. 将List中数据放入实体类中再放入List中(对List数据中进行分页处理)

    [java]  view plain  copy List<TagInfo> tagInfoList=new ArrayList<TagInfo>(); for(int j=0 ...

  3. public,static,private,protected的用法

    很多小伙伴不知道public,static,private,protected的用法,尤其是static和protected,虽然知道怎么用,但不知道是什么实际意义.小编这就为大家讲解! 在讲解之前, ...

  4. 葵花宝典——放入word中

    葵花宝典 Java基础 1.面向对象的特征有哪些方面 1.抽象: 2.继承: 3.封装: 4.多态性: 2.String是基本的数据类型吗? 基本数据类型包括byte(8),short(16),int ...

  5. java中将类放入包中,Java 包

    Java 允许使用包(package)将类组织起来.借助于包可以方便地组织自己的代码,并将自己的代码与别人提供的代码库分开管理.使用包的主要原因是确保类名的唯一性.标准的 Java 类库分布在多个包中 ...

  6. 计算机vf中rest是什么意思,vf常用命令(全)

    <vf常用命令(全)>由会员分享,可在线阅读,更多相关<vf常用命令(全)(10页珍藏版)>请在人人文库网上搜索. 1.一.数据库的建立.打开.关闭和删除1二.数据表和视图的建 ...

  7. java jsp js xml_jsp实现将信息放入xml中的方法

    本文实例讲述了jsp实现将信息放入xml中的方法.分享给大家供大家参考,具体如下: 一.jsp代码: 省: 北京 广东 海南 市: 北京 二.ajax代码创建服务器请求代码不用写了,写onchange ...

  8. java lambda函数_最常用的 Java 8 中的 Lambda 函数(项目中实用笔记)

    最常用的 Java 8 中的 Lambda 函数(项目中实用笔记) 简介 Java 8 中的新特性,虽然现在都出到了Java14版本,不过在日常的开发过程中,8的版本是足够使用了,再说现在的8以上的版 ...

  9. 包+类导入+静态导入+类放入包中+包作用域

    [0]README 0.1)本文转自 core java volume 1, 旨在理清 包和类导入的相关知识: [1] 包 1.1) java 允许使用包将类组织起来,包可以方便组织代码,并将自己的代 ...

最新文章

  1. 打开闪光灯java代码_android 拍照带水印(可打开闪光灯功能)
  2. 如何让机器获得幽默感——Goolge图学习技术揭秘
  3. Java Web学习路线
  4. 共享一款基于 jQuery 的多功能对话框插件 jBox,强不强大,用了才知道:)
  5. Webdriver常用的元素定位
  6. python 通过模板生成文章_自动生成文章_python自动生成文章 - 云+社区 - 腾讯云
  7. mysql 唯一索引为null_mysql 唯一索引与null.md
  8. [从头读历史] 第253节 孔子和他的《春秋》 [BC722至BC658]
  9. rsyslog 定义格式
  10. ICLR2020论文阅读笔记reformer: THE EFFICIENT TRANSFORMER
  11. Javafx+MySQL 学生成绩管理系统
  12. 思维误区:努力学习与有效学习!不要做无用功
  13. 机器学习笔记——模型选择与正则化
  14. 长沙高中计算机学校排名2015,长沙市所有高中学校排名,2021年长沙市重点高中分数线排名榜...
  15. 杰理之二代手表原理图【篇】
  16. post和put的请求的区别
  17. 安卓Android中腾讯音视频和直播 API的使用
  18. 【C++】进阶版--继承
  19. 2019年985院校计算机专业排名,2019年985大学名单排名,985大学详解(附全榜单)
  20. Flask04_模板语法

热门文章

  1. docker 命令详解
  2. vue - package.json
  3. iOS - Swift NSEnumerator 迭代器
  4. 学习前端工程师手册--学习记录
  5. MariaDB数据库介绍三、MHA(Master HA)实现主节点故障转移
  6. libSVM 参数选择
  7. linux socket无延迟发送数据
  8. 删除Win7隐藏的系统分区
  9. 使用交换机的dhcp snooping拒绝非法dhcp服务
  10. Mysql 导入导出csv 中文乱码问题的解决方法