类的静态成员以及类的引用,接口和抽象类,后期绑

编辑: admin 分类: 电脑知识 发布时间: 2023-06-14 来源:互联网
类的静态成员以及类的引用,接口和抽象类,后期绑定和命名空间1.类的静态成员

类的静态属性

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

类的静态方法

  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;
【本文来源:美国服务器 http://www.558idc.com/mg.html提供,感恩】