php笔记

魔术方法

  • __constructor () {} 构造函数
  • __destruct 析构函数
  • __set 两个参数,要设置对象的名称,设置对象的值,当修改了对象的属性的时候,这个方法被调用,
  • __get 一个参数,获取对象的名称,当对象的属性被获取的时候,这个方法被调用
  • __isset 一个参数,对象属性名,当类外使用isset判断属性是否存在时被调用
  • __unset 一个参数,对象属性名,当类外使用unset删除属性时被调用

继承

  • class A extends B
  • private 只能在当前类中访问
  • protect 只能在当前类或子类中访问
  • public 在当前类中,子类中,类外都可以访问
  • 在子类的方法中使用parent::fun() 调用父类的方法,子类的权限要低于父类(父public,子只能是public)

关键字

final
  • final 标识的类不能被继承
  • final 标识的方法不能被子类覆盖
static
  • 在类中使用static关键字声明的方法和变量在对象中共享
  • 在方法中使用selt::$name使用变量或方法
  • 可以用来统计类声明了对象的数量
  • 涉及到单态设计模式
const
  • 在类的内部定义常亮
  • 使用const声明的常量名称钱不使用$
  • 变量名通常是大写的
instanceof
  • 判断对象是否是类的实例
  • 判断类是否是父类的子类
  • 语法:$man instanceof Person
克隆对象(深复制)
$p1 = new Person();
$p2 = clone $p1;
  • 克隆时会自动调用类中的__clone函数

通用方法

toString
  • 通过obj.toString()方式调用类中的__toString函数
  • 打印出__toString函数的返回值
  • __toString中至少有一个参数作为返回值
__call
  • 如果调用对象中不存在的方法,则自动执行__call函数
  • __call函数有两个返回值:方法名(String)和参数(Array)

自动加载类

  • 方便引用类,如果没有在当前作用域内找到类名,则自动调用全局__autoload方法。
function __autoload($className){
    include(strtolower($className).".class.php")
}
  • 要求类名采用xxxx.class.php的格式

对象串行化 313

  • 对象串行化就是把对象转成二进制数据,方便传输或者保存
  • 对象串行化方法:$person_string = serialize($person)
  • 将串行化后的对象转成对象:$person_string = unserialize
  • 使用serialize时会自动调用类中的__sleep函数,这个函数返回一个含有多个对象属性的数组,规定了哪些属性需要被串行化

抽象类与接口

抽象类

  • 只要有一个抽象函数就叫做抽象类。
  • 抽象类可以拥有不抽象的方法或属性,但是不能用private关键字修饰
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、Apache、PHP、MySQL安装 1、Apache的安装 1.1 安装: 在dos界面进入安装包的bin目...
    像素规划师阅读 4,976评论 3 4
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,898评论 18 399
  • 整理来自互联网 1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具...
    Ncompass阅读 5,401评论 0 6
  • 一:java概述: 1,JDK:Java Development Kit,java的开发和运行环境,java的开发...
    慕容小伟阅读 5,791评论 0 10
  • 我写着琐碎的事 唱着凌乱的歌 旋律里敲打着意识 不分季节和过去 不曾叹息 如果生活就是那重复的铃声 你该怎么活 没...
    shadowunique阅读 955评论 0 0