PHP面向对象的几点补充

一些类和对象的系统函数

  • class_exists():判断某个类是否存在
  • interface_exists():判断接口是否存在
  • get_class():获取某个对象的"所属类名"
  • get_parent_class():获取某个对象的"所属父类类名"
  • get_class_methods():获取一个类的所有方法,返回一个索引数组, 数组里是所有的方法
  • get_class_vars():获取一个类的所有方法,返回一个键值对数组
  • get_declared_classes():获得所有声明过得类(包含系统中的类)

对象有关:

  • is_object():判断是否为对象
  • get_object_vars():获得对象的所有属性,返回一个数组,下标为属性名,值为属性名
  • 对象名 instanceOf '类名':判断对象是否为某个类的对象
    注意:如果有继承关系,它也一定为该上级类的对象。

两个特定语法场景辨析

对象向下传递:

当一个对象调用一个实例方法,然后在该实例方法(f1)中又去"静态"调用另
一个类的方法(f2),则在方法f2中,会自动获得在方法f1中的$this对象。


对象向下传递
static 后期静态绑定特性:

在方法中使用self代表代码所在的那个类,而static代表调用方法所在的那个类,一般需求较常用static,比较灵活


案例分析

static3个不同的用武之地:

  1. 函数中的静态变量
  2. 类中的静态成员
  3. 方法中的动态指代"指代"当前类
面向对象三大思想特征介绍
  1. 封装
    把数据封闭起来,尽量不让别人看到,类的定义其实可以认为最基本的封装,通常理解的封装是尽量将属性作为私有,并通过公共方法来向外提供对该属性的操作。
  2. 继承
    很容易理解,不在多说
  3. 多态
    大致行为:看起来使用的是相同的方法,却得到不同的结果。一个对象使用相同的方法,但能得到不同的结果,直观的例子,相同方法名,可以有不同的参数数量和类型,PHP中不能直接使用多态,但能变相达到相同的效果。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,864评论 6 13
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,931评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,403评论 19 139
  • 1 面向对象No6 面向对象 OO Object Oriented 编程时以对象为单元,封装数据和逻辑,以此提...
    征程_Journey阅读 4,889评论 0 2
  • Day55 2017年6月19日秀娟,今天读了《象与骑象人》自以为是这一章 这是一本积极心理学的书,骑象人就是有意...
    二解阅读 3,567评论 0 0