博主信息
博文 40
粉丝 0
评论 0
访问量 26870
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
类的静态成员以及类的引用,接口和抽象类,后期绑定和命名空间
飞天001
原创
1007人浏览过

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

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;
批改老师:PHPzPHPz

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学