




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象第4天学习目标1综合案例:学生信息管理系统21、面向对象开发流程22、单例设计模式(三私一公)23、数据库工具类(./libs/Db.class.php)34、连接数据库的公共文件(./conn.php)45、显示学生信息列表(./list.php)46、删除学生信息(./delete.php)57、创建分页类文件 ./libs/Pager.class.php7工厂设计模式71、什么是工厂设计模式72、工厂设计模式的要求83、实例:创建不同形状类的对象8重载81、什么是重载82、属性重载9(1)_get()魔术方法9(2)_set()魔术方法10(3)_isset()魔术方法11(4)_unset()魔术方法113、方法重载12(1)_call()魔术方法12(2)_callStatic()魔术方法12变量序列化131、什么是变量序列化132、序列化函数serialize()133、反序列化函数unserialize()134、对象序列化145、对象反序列化14常用的魔术常量15学习目标 综合案例:学生信息管理 工厂设计模式 重载 静态延时绑定 变量序列化 常用的魔术常量综合案例:学生信息管理系统1、面向对象开发流程 面向过程是以过程(步骤)为中心的编程思想,面向对象是事务(对象)为中心的编程思想。 对象是专业对象,是一个功能方方面面的总和。例如:数据库对象、分页对象、图像处理等。 一个项目由若干个功能模块构成,包括:用户管理、新闻管理、产品管理、文章管理、学生管理等。 每个功能模块是一个对象,包括:用户对象、新闻对象、产品对象、文章对象、学生对象等。 每个对象对应一个类:包括:用户类、新闻类、产品类、文章类、学生类等。 当然,每个模块还有一些公共对象:数据库对象、分页对象、上传对象、图像处理、验证码对象等。2、单例设计模式(三私一公) 一个类永远只能创建一个对象,不管用任何方法都无法创建第2个对象。该对象大家共享。 一私:私有的静态的保存对象的属性。 一私:私有的构造方法,阻止类外new对象。 一私:私有的克隆方法,阻止类外clone对象。 一公:公共的静态的创建对象的方法。3、数据库工具类(./libs/Db.class.php)4、连接数据库的公共文件(./conn.php)5、显示学生信息列表(./list.php)6、删除学生信息(./delete.php)(1)列表页list.php(2)删除页面delete.php7、创建分页类文件 ./libs/Pager.class.php工厂设计模式1、什么是工厂设计模式 根据传递不同的类名参数,返回不同类的对象; 工厂模式,就是生产各种的不同类的对象; 工厂模式,改变了在类外使用new关键字创建对象的方式,改成了在工厂类中创建类的对象。 在类的外部我们无法控制类的行为,但在类内部自己可以控制类的行为。2、工厂设计模式的要求 一般情况下,定义一个工厂类; 工厂类中的方法,应该是公共的静态的方法; 该方法功能:就是根据传递的不同参数,去创建不同的类实例;3、实例:创建不同形状类的对象重载1、什么是重载 在其它编程语言中,面向对象的重载是指,方法有相同的名称,但是参数列表不相同的情形,但PHP不支持同名函数或同名方法。 PHP所提供的重载(overloading)是指动态地创建类属性和方法,我们是通过魔术方法来实现的。 当调用当前环境下未定义或不可见的类属性或方法时,重载方法会被调用。 所有的重载方法都必须被声明为 public。 属性重载只能在对象中进行。在静态方式中,这些魔术方法将不会被调用。所以这些方法都不能被 声明为 static。 这些魔术方法的参数都不能通过引用传递。2、属性重载(1)_get()魔术方法描述:读取不可访问属性的值时,_get() 会被调用。语法:public mixed _get ( string $name )(2)_set()魔术方法描述:在给不可访问属性赋值时,_set() 会被调用。语法:public void _set ( string $name , mixed $value )(3)_isset()魔术方法描述:当对不可访问属性调用 isset() 或 empty() 时,_isset()会被调用。语法:public bool _isset ( string $name )(4)_unset()魔术方法描述:当对不可访问属性调用 unset() 时,_unset()会被调用。语法:public void _unset ( string $name )3、方法重载(1)_call()魔术方法描述:在对象中调用一个不可访问方法时,_call() 会被调用。语法:public mixed _call ( string $name , array $arguments )(2)_callStatic()魔术方法描述:用静态方式中调用一个不可访问方法时,_callStatic() 会被调用。语法:public static mixed _callStatic ( string $name , array $arguments )变量序列化1、什么是变量序列化 序列化是将变量转换为可保存或传输的字符串的过程; 反序列化就是在适当的时候把这个字符串再转化成原来的变量使用; 这两个过程结合起来,可以轻松地存储和传输数据,使程序更具维护性; 序列化有利于存储或传递 PHP 的值,同时不丢失其类型和结构。2、序列化函数serialize() 描述:产生一个可存储的值的表示; 语法:string serialize ( mixed $value ) 参数:$value可以是任何类型,除了资源外; 返回:返回序列化之后的字符串,可以存储于任何地方。3、反序列化函数unserialize() 描述:从已存储的表示中创建 PHP 的值 语法:mixed unserialize ( string $str ) 说明:对单一的已序列化的变量进行操作,将其转换回 PHP 的值。 参数:$str为序列化后的字符串; 返回:返回的是转换之后的值,可为 integer、float、string、array或 object。 如果传递的字符串不可序列化,则返回 FALSE,并产生一个 E_NOTICE。4、对象序列化 对象的序列化过程,与其它变量数据一样; 对象序列化的内容只能包含成员属性; 当序列化对象时,serialize()函数会检查类中是否存在一个魔术方法 _sleep()。如果存在,该方法会先被调用,然后才执行序列化操作。此功能可以用于清理对象,并返回一个包含对象中所有应被序列化的变量名称的数组。5、对象反序列化 对象的反序列化过程,与其它变量数据一样; 当对象反序列化时,unserialize()函数会检查类中是否存在一个_wakeup()方法。如果存在,则会先调用 _wakeup 方法,预先准备对象需要的资源。 _wakeup() 经常用在反序列化操作中,进行一些初始化操作,例如重新建立数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度服装行业环保责任履行合同
- 二零二五版科技园区分租租赁合作协议
- 二零二五年度新型电子产品销售担保合同范本
- 二零二五年度建筑拆除工程施工合同索赔争议解决与赔偿标准
- 二零二五年度新型地暖系统垫层工程承包合同范本
- 岩石成因课件
- 二零二五年度文化场馆安保与资料专员聘用合同
- 2025版建筑垃圾处理及施工维修合同范本
- 二零二五年度智能安防监控设备采购合同书范本
- 二零二五年度医疗救助慈善捐赠项目协议
- 劳动仲裁员任职培训课件
- 2026创新设计高考总复习生物(人教版)-限时强化练答案解析
- 2025年中学生法治素养竞赛题库及答案
- 《语文八下第三单元复习课》课件
- 益阳市融资担保有限责任公司招聘考试真题2024
- 2025年山西省公务员考试行测试卷历年真题及答案详解(名校卷)
- 新人教版五年级上册小学数学教学计划+教学进度表
- 痔疮的健康教育课件
- 优甲乐(左甲状腺素钠片)健康教育
- 肝脏弥漫性病变超声诊断与检查规范
- 风力发电税务培训课件
评论
0/150
提交评论