版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第7章 对象变量,第3章为读者介绍了PHP中的常量与变量时,曾提到了一种特殊变量类型对象。由于对象变量不仅仅是简单的变量,而且还牵涉很多与函数相关的内容,所以在介绍完函数后,本章将为读者详细介绍对象这种特殊的变量。通过本章内容的学习,读者将会了解到PHP的面向对象编程(OOP)的特性,并领会该种编程模式与面向过程的不同。 在本章中,将重点学习以下内容: 什么是面向过程 什么是面向对象 面向对象与面向过程的特点 详述对象变量 使用类与对象,7.1 面向对象与面向过程,通常的编程语言所使用的方法有两种:面向过程方法(C语言通常采用的方法)、面向对象(OOP)方法(Java语言通常采用的方法)。PH
2、P作为一种混合语言,同时兼有面向过程和面向对象这两种能力。在学习对象这种特殊变量之前,先来了解一下什么是面向过程与面向对象。,7.1.1 什么是面向过程,“面向过程”是一种以事件为中心的编程思想。该种编程方法就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。本书前6章所涉及的代码几乎全部都是面向过程的方法。 面向过程的代码一般看起来会像这样: ,7.1.2 什么是面向对象,“面向对象”(Object Oriented,简称OO)是一种以事物为中心的编程思想。为了达到7.1.1小节代码中的输出字符串的效果与面向过程不同,面向对象会使用到如下所示
3、的代码: myprint(); ?,7.1.3 面向对象与面向过程的特点,通过7.1.1及7.1.2小节对面向对象与面向过程的介绍,可以发现二者存在以下方面的关系: 代码封装不同。 代码可维护性不同。 流程控制不同。 框架利用不同。,7.2 对象变量,对象变量也属于变量的一种,但又不同于一般的变量。和数组变量一样,对象变量也是一种特殊的变量。对象变量的定义方法以及其组成要素及使用方法都与一般的变量有所不同。这一节就来详细介绍类与对象的使用。,7.2.1 什么是类,在PHP中类的概念通俗一点说:“类”就是一类某事物的统称是具有相同的属性定义和行为表现的事物的集合。所有具有一类特性的事物都可以被称
4、作类。比如“人”就是一个类,这个类具有“国籍”、“种族”、“年龄”、“姓名”等属性定义,也具有“走路”、“工作”等行为表现。与这个类相区别,“动物”和“植物”就是另外的两个类,因为这些不同的类具有不同的特性。 类是一个泛称不是指的个体,可以说某一个人具有国籍,但不能说“人”这个类的“国籍”是什么,因为“国籍”这个属性的表现是要随着类的具体化而实现。类是虚无的东西,一个概念名词而已。真正用到的则是类的实例对象。,7.2.2 创建类,对象是类的实例,类是对象是根本,使用对象必须以类为前提。所以定义一个类是使用类与对象的一个最基本的前提。在PHP中定义一个类要使用这样的语法格式: class cla
5、ssname var $var; function functionname() statement; ,7.2.3 为类实例化对象,在类创建之后,实际使用时要用的不是类,而是类的对象。比如,说到某一个具体的人要做什么而不能说人类做什么。所以要为类实例化对象,即以类为基础创建对应于类的对象。7.2.1小节介绍了类的创建方法,本小节再来介绍如何为类实例化一个对象。在PHP中要为类实例化对象使用如下所示的代码样式: $obj_name=new classname;,7.2.4 使用对象,在为类实例化对象之后就可以使用对象,使用对象通过使用其属性与方法实现。在PHP中可以通过以下代码样式使用对象:
6、$obj_name=new classname; $obj_name-varname; $obj_name-functionname();,7.2.5 稍微复杂的例子,上一小节为读者介绍了基本的类与对象的创建,本节来介绍一个稍微复杂的例子。 1有返回值的方法 2有参数及返回值的方法,7.2.5 稍微复杂的例子,7.2.6 类的继承,这一小节来介绍类的继承,继承是一种由已有的类创建新类的机制。利用继承,用户可以先创建一个共有属性的一般类,根据该一般类再创建具有特殊属性的新类。新类继承一般类的状态和行为,并根据需要增加它自己的新的状态和行为。由继承而得到的类称为子类,被继承的类称为父类。在PHP中
7、使用关键字:extends关键字来创建继承父类的子类,其语法格式如以下代码所示:,7.2.6 类的继承,7.2.7 方法重载,上一小节介绍了类的继承,在使用类的继承时,有可能会出现子类中出现与父类中同名的属性或者方法的情况。在子类中可以定义与父类相同属性或方法,改变父类该属性或方法的值或操作,就叫做重载。 注意:PHP不支持同一类中方法的重载。不管参数类型是否相同,同一类中不允许出现同名的方法。 在PHP子类中调用父类方法共有3种方法,其语法格式分别为: $this-ParentFunction() Parentclassname:ParentFunction() parent:parentF
8、un();,7.2.7 方法重载,7.2.8 类的引用,类的引用就是指在一个类中使用另一个类中定义的属性与方法。PHP支持类的引用,要在一个类中引用另一个类的内容,可以通过如下代码格式来实现: class classname var $varname; function functionname() statement; class otherclass classname:functionname(); classname:$varname; ,7.2.8 类的引用,7.2.9 类的构造方法,类的构造函数是在为类实例化一个对象时会执行的一个方法。在PHP中使用特殊的函数:_construct
9、()来表示类的构造方法(双下划线加construct加一对括号来表示)。构造方法一般用于初始化类的一些重要属性。其语法格式如以下代码所示: class classname var $var; function _construct($var ) ,7.2.9 类的构造方法,7.3 使用类与对象,上一节为读者介绍了对象变量及其相关的知识,这一节来介绍在PHP中常用的对类与对象进行操作的内容。PHP的系统函数专门提供了一类对类与对象进行操作的函数,通过这些函数可以对类与对象进行各种需要的操作,本节将逐一作介绍。,7.3.1 检查类是否定义,在实例化对象时指定的类如果是一个不存在的类则会提示错误。所
10、以在使用一个类之前需要事先了解类是否存在。PHP系统函数中就有函数class_exists(),该函数的语法格式如以下代码所示: bool class_exists(string $class_name,bool $autoload),7.3.2 返回类的方法名,使用PHP系统函数中的get_class_methods()函数,可以将类的方法以数组的形式返回。该函数的语法格式如以下代码所示: array get_class_methods(string $class_name),7.3.3 返回类的属性,7.3.2小节介绍的内容是返回类的方法名,除此之外PHP还可以使用系统函数返回类中属性的名
11、称。使用函数get_class_vars()即可返回由类的默认属性组成的数组,该代码的语法格式如下所示。 array get_class_vars(string $class_name ),7.3.4 返回对象的类名,使用PHP中的系统函数get_class()可以返回指定对象所属的类的名称。该函数的语法格式如以下代码所示: string get_class(object $obj),7.3.5 检查类与对象的关系,PHP提供了用于检查类与对象关系的关键字:instanceof,使用该操作符可以判断某一对象是否是类的子类。该操作符的语法格式如以下代码所示: $object instanceof
12、 $class_name,7.3.6 检查方法是否存在,当执行对象的方法时,预先了解对象所属的类中是否存在某个方法有时是很有必要的,而PHP系统函数中提供了用于检测类中指定方法是否存在的函数。使用method_exists()函数可以检查方法是否存在,该函数的语法格式如下所示: bool method_exists(object $object,string $method_name),7.3.7 检查属性是否存在,7.3.6小节介绍了检查属性是否存在的方法,PHP系统函数中同样提供了用于检测类中指定属性是否存在的函数。使用property_exists()函数可以检查属性是否存在,该函数的语法格式如下所示: bool property_exists(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年基础教育科学探究实验箱行业创新分析报告
- 2026年先进材料研发报告
- 循证康复实践中的康复-启示创新
- 影像组学在肿瘤个体化治疗中的技术培训与推广
- 初中数学移动学习互动数据分析与数学思维训练策略探究教学研究课题报告
- 康复评估的循证康复循证实践指南
- 康复医院成本效益智能评估
- 2026年智慧物流行业报告
- 2026年高端制造机器人技术报告及产业升级创新分析报告
- 2025年绿色能源光伏发电市场报告
- 2026年亳州市辅警招聘考试备考试题及答案详解
- 2025北京中国机械总院集团物业中心怀柔分中心招聘1人笔试历年参考题库附带答案详解
- 【中考数学冲刺】2026届黑龙江省绥化市中考仿真数学试卷3 附解析
- 钢铁生产工艺与设备手册
- nccn临床实践指南:软组织肉瘤(2026.v2)解读课件
- 2026云南曲靖市商业银行股份有限公司招聘若干人考试备考题库及答案解析
- 2026高考作文热点主题满分素材
- 2026年香精香料专业考试试题及答案
- DB54∕T 0617-2026 民用供氧工程设计标准
- 河南省房屋建筑工程消防设计审查常见技术问题解答(2023年版)
- 弱电产品质保合同协议书
评论
0/150
提交评论