PHP学习1
2016-09-16 本文已影响0人
罟宁
第一章 面向对象思想的核心概念
OOPL(Object-Oriented Programming Language)面向对象编程
一.对象的“形”
- 一个类的设计需要能充分展示其最重要的属性和方法,并且能与其他事物相区分
- 类是属性和方法的集合
1. 对象就是一堆数据
print_r((array)$student);
var_dumo($student);
2. 序列化→将一个对象存储起来
//序列化student对象并存储
$str = serialize($student);
file_put_contents('store.txt',$str);
//反序列化对象并显示
$str = file_get_contents('store.txt');
$student = unserialize($str);
- 序列化和反序列化均需引入类的对象的定义,否则会因找不到类定义二报错
- 序列化储存的是对象的属性和类名(用于)
- 类是由属性和方法组成的,而对象则是属性的集合。由同一个类生成的不同对象,拥有各自不同的属性,但同享了类的代码空间中的方法区域的代码
二. 对象的“本”
- 对象也是一种普通的变量,与变量不同的在于其携带了对象的属性和类的入口
三. 对象与数组
- 区别:对象还有指针,指向其所属的类
四. 对象与类
- 类=属性+操作的模板,对象则把属性具体化,然后交给类
- 对象=属性数据,不包含方法,但内有指向父类的指针,类中有方法
- 方法描述不同属性所导致的不同表现
- 区分类的办法是实例化出对象进行比较
五. 魔术方法的应用(__,有特殊作用的方法)
- __construct()构造方法,实例化对象时运行,用于属性赋值、连接数据库等等
- __destruct()析构方法,在对象的所有引用都被删除/对象被显式销毁 时运行
- __set()和__get()方法(magic.php)
重载:指一个类中可以定义参数列表不同但名字相同的多个方法
(如:Java中允许多个构造函数,php只允许一个) 用于定义不存在的类属性 - __call()和__callStatic()方法(simpleOrm.php)
用于定义不存在或不可访问的类方法
使动态创建成为可能 - __toString()方法
打印一个对象时触发