PHP学习1

第一章 面向对象思想的核心概念

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()方法
    打印一个对象时触发

你可能感兴趣的:(PHP学习1)