PHP 自动加载 克隆 类型约束 魔术方法

有关类和对象的相关知识
 1.类的自动加载:
  在需要一个类名的时候,自动获取类名,并且引入文件
  引入文件的4中方式:include,require,include_once,require_once。
 2.对象的复制(克隆) clone
    浅克隆: 浅克隆不能克隆对象
    深克隆:完全复制
 3.对象遍历
    也可以使用foreach语句进行遍历 只能遍历属性 和 看得到的属性(公共的属性)
 4.PHP内置标准类
    不需要定义 直接写
 5.将数据转换为对象
    对象转换为对象:没有变化;
    数组转换为对象:数组的键名当做属性名,值为对应值 如果数字下标 通常都是关联数组 其他数组没有意义
    null转换为对象:空对象;
    其他标量数据转换为对象:属性名为固定的“scalar”值为该变量的值
 6.类型约束
    其他语言中如(java)类型约束是语法上的要求,即定义个一个变量,必须指定类型,并以后也只能存该数据类型--这种就是强类型语言
    如:int n1=1  //int类型
        float f1;   //float类型
    php是弱类型语言。无须为变量指定类型
    但是在某些特定的场合,针对某些特定的类型,也可以进行语法约束
        特定的场合:函数(或方法)的变量形参
        特定类型:对象类型(类名),接口类型(接口名),数组类型(array),函数类型(callable)
 7.与类有关的魔术常量
    _class_获取其所在的类的类名
    _METHOD_获取其所在的方法的方法名
 8.数据(变量)序列化/反序列化
      序列化:就是将一个变量的数据“转换为”字符串--但并不是类型转换
      其目的是将该字符串储存起来 然后在其他时间(或其他运行环境/电脑)上将其恢复原样
      比如:很多有些设计中,都有一个功能:保留场景及当前所有装备,武器,服装。。。。则也就是对应了有“反序列化”工作
 9.其他魔法方法
      当对一个对象进行“序列化”操作的时候,会自动调用类中的__sleep()方法;
      当“反序列化”一个对象的时候,会自动调用对应类中的__wakeup()方法
      当把一个对象当作一个“字符串”来看待(处理)的时候,会自动调用__tostring()方法
      对象当作一个“方法”(函数)的时候,会自动调用__invoke()方法
 10.一些有关类和对象的系统函数和运算符
          class_exists(), :判断某个类是否存在(定义过)
        interface_exists(), :判断接口是否存在
        get_class():获取某个对象的“所属类名”
        get_parent_class(), :获取某个对象的“所属父类的类名”
        get_class_methods(), :获取一个类的所有方法,返回一个索引数组,就是这些方法的名字。
        get_class_vars(), :获取一个类的所有属性,返回一个数组,下标为属性名,值为属性值。
        get_declared_classes():获得所有声明过的类(含系统中的类)
        is_object():判断是否对象
        get_object_vars():获得对象的所有属性,返回一个数组,下标为属性名,值为属性值
 11.两个特定的语法场景的辨析
      对象向下传递特性:
         当一个对象($o1) 调用一个实例方法,然后,在该实例方法(f1)中又去“静态”调用另一个类的方法(f2),则在方法f2中,会自动获得在方法f1中的那个$this对象。
    

原文地址:https://www.cnblogs.com/xzz123-/p/9153355.html