class_exists():判断某个类是否存在(定义过)

interface_existe():判断接口是否存在

get_class():获取某个对象的"所属类名"

get_parent_class():获取某个对象的"所属父类的类名"

get_class_method():获取一个类的所以方法,返回一个索引数组,就是这些方法的名字。

get_class_vars():获取一个类的所有属性,返回一个数组,下标为属性名,值为属性值。

get_declared_classes():获得所有声明的类(含系统中的类)

is_object():判断是否对象

get_object_vars():获得对象的所有属性,返回一个数组,下标为属性名,值为属性值。


instanceof:判断一个对象是否是某个类的"实例"

一个对象如果是下级某个类的“实例”,则其一定也是该类的上级类的“实例”

两个特定语法场景的辨析

对象向下传递特性:

当一个对象($object1)调用一个实例方法,然后,在该方法(A)中又去“静态”调用另一个类的方法(B),则在方法中B中,会自动获得在方法A中的那个this对象。


self:代表当前类,指其代码所在的类(静态绑定)

static:也代表“当前类”,调用本方法的类,static这个词有时候跟self代表用一个类,也有时候代表不用的类,

static代表的是调用者(动态绑定),通常认为,这种情形更符合显示的需要,可见self完全可以被static代替使用。

可见static有3个不同含义的语法:

函数中的静态变量:

  function f1(){

    static $var1 = 1;

  }

类中的静态成员:

  class A{

    static $var1 = 1;

    static function f1(){}

  }

方法中的动态指代“当前类”:

  class A{

    function f1(){

      static::f2();//static指代调用f1这个方法的类(或对象的类)

      self::f2()//self这里永远指代当前A这个类

    }

  }

面向对象3大思想特征介绍:

封装:

  就是把数据“封闭”起来,尽量不给别人看到。

  面向对象的基本语法“类的定义”形式,可以认为是最基本封装--封装了很多数据到某个类(对象)。

  但:

  更严格(更常说)的封装,是尽量将属性做出“私有的”--并通过共有的方法向外提供对该属性的“可控性”:

继承:

多态:

  通常是指:一个对象可以使用相同的方法(动作)但得到不同的结果:

    (这里是其他常见面向对象语法示例:)

    class A{

      function f1($x){...做事情1;}

      function f1($x,$y){...做事情2;}

      function f2($x,$y,$z){...做事情3;}

    }

  也指:不用的对象使用相同的方法,但得到不同的结果:

最新文章

  1. Linux_用户级_常用命令(4):cp
  2. eclipse添加字体
  3. jq数组,得到遍历生成的id后面的id
  4. 行锁sqlserver
  5. apache工作模式:prefork和worker
  6. GPU的革命
  7. 为什么引用不了App_Code里的类
  8. poj 2104 K-th Number 划分树,主席树讲解
  9. chrome_php logger 的实现原理
  10. 搭建一个三台服务器的Memcached集群
  11. python变量与数据类型
  12. Token在android中的使用
  13. 光场相机重聚焦之二——Lytro Illum记录光场
  14. PHP的Session机制
  15. CSAPP:第八章 异常控制流2
  16. vue 自定义marquee无缝滚动组件
  17. day09--函数的定义分类以及其使用(1)
  18. 当返回值为json字符串时 如何获得其中的json数组
  19. [LeetCode&Python] Problem 653. Two Sum IV - Input is a BST
  20. c++——基本概念

热门文章

  1. 使用hash表进行数组去重
  2. 把int 类型转化为varchar并且去掉小数点同时以千分号‘,’分割
  3. 在vsCode中用git命令合并分支
  4. 部分DOM事件总结
  5. jsp页面随页面初始化加载js函数
  6. linux命令之 repeat 重复执行命令
  7. 22pygame 安装
  8. 64bit assembly
  9. 动态新增删除tbody表格行与ajax请求完成后刷新父窗口问题
  10. 【leetcode】870. Advantage Shuffle