博客列表 >类的静态成员以及类的引用,接口和抽象类,后期绑定和命名空间

类的静态成员以及类的引用,接口和抽象类,后期绑定和命名空间

飞天001
飞天001原创
2023年04月19日 10:18:07489浏览

类的静态成员以及类的引用,接口和抽象类,后期绑定和命名空间

1.类的静态成员

类的静态属性

  1. //声明静态属性的关键字:static
  2. public static string $uname;
  3. private static int $salary;
  4. public static string $siteName = 'php中文网';

类的静态方法

  1. //静态成员都可以省略public
  2. public static function getBK(){
  3. return self::$uname;
  4. }

使用self::来访问静态成员和类常量

  1. self::$uname = $uname;
  2. self::$salary = $salary;

2.接口,抽象类,trait

接口

接口实现了php的多态性
接口里所有成员都是公开的,即都用public标识符
接口里的方法只有声明,没有实现

  1. //通过interface关键字定义接口
  2. interface Idemo{}

抽象类

抽象类里可以存在抽象方法和工作方法,因此抽象类不能被实例化
抽象方法就是没有实现功能的方法
一个抽象类可以实现多个接口

  1. //通过关键字abstract定义抽象类
  2. abstract class aDemo implements Idemo{}

trait

因为php只能是单继承,因此为了不破坏程序的结构,引入了trait
trait用于不修改父类的情况下扩展类的功能
写法和类类似

  1. //用关键字 trait定义
  2. trait t1{
  3. public dd(){}
  4. }
  5. //用法,用关键词use 实现引入trait
  6. class Work extends aDemo{
  7. use t1;
  8. pubic function fun(){}
  9. }

3. 后期静态绑定

后期静态绑定关键字:static
static 后期静态绑定 一般是用在静态继承上下文里
如果此类不需要被人继承可以直接使用self::

  1. class demo1{
  2. public static fun1(){
  3. return 'car';
  4. }
  5. public fun2(){
  6. return static::fun1(); //static实现后期绑定
  7. }
  8. }

4. use在命名空间中的使用

可以用as为命名空间起别名
如果没有用as 默认是最后一个单词为别名
需要在文件的顶部通过设置命名空间,关键字namespace ns1;以此来解决全局变量的命名冲突问题.

  1. //用关键字use 引入类
  2. use app\controller\Index;
  1. // 别名
  2. use app\controller as pr;
  1. //如果没用as,默认最后一个单词为别名 Index
  2. use app\controller\Index;
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议