php笔记
作者:
蛋黄肉 | 来源:发表于
2018-04-13 14:23 被阅读21次
类
魔术方法
-
__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;
通用方法
toString
- 通过
obj.toString()方式调用类中的__toString函数
- 打印出
__toString函数的返回值
-
__toString中至少有一个参数作为返回值
__call
- 如果调用对象中不存在的方法,则自动执行
__call函数
-
__call函数有两个返回值:方法名(String)和参数(Array)
自动加载类
- 方便引用类,如果没有在当前作用域内找到类名,则自动调用全局
__autoload方法。
function __autoload($className){
include(strtolower($className).".class.php")
}
对象串行化 313
- 对象串行化就是把对象转成二进制数据,方便传输或者保存
- 对象串行化方法:
$person_string = serialize($person)
- 将串行化后的对象转成对象:
$person_string = unserialize
- 使用
serialize时会自动调用类中的__sleep函数,这个函数返回一个含有多个对象属性的数组,规定了哪些属性需要被串行化
抽象类与接口
抽象类
- 只要有一个抽象函数就叫做抽象类。
- 抽象类可以拥有不抽象的方法或属性,但是不能用
private关键字修饰
本文标题:php笔记
本文链接:https://www.haomeiwen.com/subject/ugmckftx.html
网友评论