【深入PHP 面向对象】读书笔记(一) - 发展介绍与对象基础
2017-08-19 15:46
459 查看
【简介】从学习的角度来说,PHP 的学习可以按下面的路线前进:PHP 基础入门(语法、常用函数和扩展等) -> 面向对象的 PHP(对象、类等) -> 网站软件架构设计(设计模式、框架等) -> 网站物理层次架构设计(分布式计算、存储、负载均衡、高可用性等)。
PHP 最初是用于管理个人主页的宏指令集合,随着 PHP3 和 PHP4 先后出现,PHP 很快成为了大型企业级站点成功的支持力量。
通过这两种工具用 C 语言重写后,组成了 PHP/FI2.0。
2)使用 class 关键字和一个任意的类名来声明类。类名可以是任意数字和字母的组合。
2)使用 new 操作符实例出一个对象。
获得到的两个对象通过 var_dump 输出,得到一个包含对象 ID 的字符串(#号后面的数字为每个对象的内部标志符)。
2)成员属性也称成员变量,和标准的变量很相似,不过必须在声明时加一个可见性的关键字(public,protected,private),它决定了成员属性的作用域。
3)使用 -> 字符连接对象变量和属性名来访问成员属性。
方法是类中声明的特殊函数。
方法声明类似于函数声明。
使用 -> 连接对象变量和方法名来调用方法。
构造方法有固定的命名__construct。
子类将继承父类的属性和方法。
子类可以增加父类之外的新功能。
创建子类时需要使用 extends 关键字。
子类若没有定义构造方法,在实例化时会自动调用父类的构造方法。
子类默认继承了父类所有的 public 和 protected 方法(但是不继承private方法或属性)。
protected:仅在当前类或者子类中可以访问,外部无权访问;
private:仅在当前类中可以访问,子类和外部均无权访问。
1. PHP:介绍
1.1 历史介绍
PHP5 发布于2004年,新特性中最重要的就是加强了对面向对象编程的支持。PHP 最初是用于管理个人主页的宏指令集合,随着 PHP3 和 PHP4 先后出现,PHP 很快成为了大型企业级站点成功的支持力量。
1.2 PHP 与对象
1.2.1 最初:PHP/FI
PHP 起源于用 Perl 开发的两个工具(PHP Tool 和FI)。PHP 是 Personal Homepage Tool 的简介,意为「个人主页工具」。而 FI 是 Form Interpreter,意为「表单解释器」。结合这两种工具形成的宏命令可用来发生SQL语句到数据库、处理表单和流控制。通过这两种工具用 C 语言重写后,组成了 PHP/FI2.0。
1.2.2 PHP3
PHP3 是由PHP/FI2.0完成重写的,在PHP3 的计划中,对象也并不在安排之中。在这一时期对象只是个边缘话题。1.2.3 一场静悄悄的革命:PHP4
PHP4 中大部分核心代码都被重写了,还特别增加了对象方面的内容,并且面向对象的代码还是成为主流。1.2.4 拥抱变化:PHP5
PHP5 明确表示支持对象和面向对象程序设计。对象已经从事后的像想法变成 PHP 语言的驱动力。PHP是一个支持面向对象开发的语言,而不是一种纯面向对象的语言。但是其所拥有的面向对象的能力已经能满足我们面向对象编程的需要了。2. 对象基础
2.1 类和对象
2.1.1 类
1)类是用来生成对象的代码模板。2)使用 class 关键字和一个任意的类名来声明类。类名可以是任意数字和字母的组合。
class ShopProduct { // 类体 }
2.1.2 对象
1)对象是根据类中定义的模板所构造的数据。2)使用 new 操作符实例出一个对象。
$product1 = new ShopProduct(); $product2 = new ShopProduct();
获得到的两个对象通过 var_dump 输出,得到一个包含对象 ID 的字符串(#号后面的数字为每个对象的内部标志符)。
var_dump($product1); var_dump($product2); object(ShopProduct)#1 (0) { } object(ShopProduct)#2 (0) { }
2.2 成员属性
1)用于存放对象之间互不相同的数据。2)成员属性也称成员变量,和标准的变量很相似,不过必须在声明时加一个可见性的关键字(public,protected,private),它决定了成员属性的作用域。
class ShopProduct { public $name; public $price; }
3)使用 -> 字符连接对象变量和属性名来访问成员属性。
$product1->name = "milk"; $product1->price = 12;
2.3 成员方法
成员属性用于存储对象数据,成员方法可以让对象执行任务。方法是类中声明的特殊函数。
方法声明类似于函数声明。
public funciton getProductInfo() { return $this->name." : ".$this->price; }
使用 -> 连接对象变量和方法名来调用方法。
$product1->getProductInfo();
2.4 构造方法
创建对象时,构造方法(constructor method,也称为构造器constructor)会被自动调用。构造方法有固定的命名__construct。
function __construct($name,$price){ $this->name = $name; $this->price = $price; }
2.5 继承
继承是一个父类得到一个或多个子类的机制。子类将继承父类的属性和方法。
子类可以增加父类之外的新功能。
创建子类时需要使用 extends 关键字。
class BookProduct extends ShopProduct {} class CDProduct extends ShopProduct {}
子类若没有定义构造方法,在实例化时会自动调用父类的构造方法。
子类默认继承了父类所有的 public 和 protected 方法(但是不继承private方法或属性)。
2.6 public、private、protected:管理类的访问
public:任何地方都可以访问;protected:仅在当前类或者子类中可以访问,外部无权访问;
private:仅在当前类中可以访问,子类和外部均无权访问。
相关文章推荐
- 深入PHP:面向对象、模式与实践-读书笔记:对象工具1
- php面向对象(一) 初窥(php面向对象基础介绍)
- 【深入PHP 面向对象】读书笔记(四) - 对象与设计
- 【深入PHP 面向对象】读书笔记(七) - 生成对象
- 【php基础班】第12天 网页对象介绍、对象深入讲解、事件、定时器
- 【深入PHP 面向对象】读书笔记(三) - 对象工具
- 【深入PHP 面向对象】读书笔记(二) - 高级特性
- 【深入PHP 面向对象】读书笔记(九) - 让面向对象编程更加灵活的模式(二) - 装饰模式
- [李景山php] 深入理解PHP内核[读书笔记]--第五章:类和面向对象 --访问控制的实现
- 【深入PHP 面向对象】读书笔记(十四) - 执行及描述任务(四) - 访问者模式
- [李景山php] 深入理解PHP内核[读书笔记]--第五章:类和面向对象 --简介
- 【深入PHP 面向对象】读书笔记(二十二) - 企业模式(七) - 业务逻辑层与事务脚本
- 【深入PHP 面向对象】读书笔记(十七) - 企业模式(二) - 注册表
- 【深入PHP 面向对象】读书笔记(二十) - 企业模式(五) - 页面控制器
- 【深入PHP 面向对象】读书笔记(十) - 让面向对象编程更加灵活的模式(三) - 外观模式
- [李景山php] 深入理解PHP内核[读书笔记]--第五章:类和面向对象 --类的结构和实现
- php面向对象视频笔记之第一章(面向对象基础)
- 【深入PHP 面向对象】读书笔记(十九) - 企业模式(四) - 应用控制器
- [李景山php] 深入理解PHP内核[读书笔记]--第五章:类和面向对象 --类的继承,多态及抽象类
- php面向对象书籍推荐:深入PHP:面向对象、模式与实践(第3版)