*/

php5学习笔记

第一节--面向对象编程

面向对象编程被设计来为大型软件项目提供解决方案,尤其是多人合作的项目. 当源代码增长到一万行甚至更多的时候,每一个更动都可能导致不希望的副作用. 这种情况发生于模块间结成秘密联盟的时候,就像第一次世界大战前的欧洲.

//haohappy注:喻指模块间的关联度过高,相互依赖性太强.更动一个模块导致其它模块也必须跟着更动.

想像一下,如果有一个用来处理登录的模块允许一个信用卡处理模块来分享它的数据库连接. 当然出发点是好的,节省了进行另一个数据库连接的支出.然而有时,登录处理模块改变了其中一个变量的名字,就可能割断了两者间的协议.导致信用卡模块的处理出错,进而导致处理发票的模块出错. 很快地,体系中所有无关的模块都可能由此出错.

因此,我觉得有点戏剧性地,绝大多数程序员都对耦合和封装心存感激. 耦合是两个模块间依赖程度的量度. 耦合越少越好.我们希望能够从已有的项目中抽走一个模块并在另一个新项目中使用.

我们也希望在某个模块内部大规模的更动而不用担心对其他模块的影响. 封装的原则可以提供这个解决方案.模块被看待成相对独立,并且模块间的数据通信通过接口来进行. 模块不通过彼此的变量名来窥探另一个模块,它们通过函数来礼貌地发送请求.

封装是你可以在任何编程语言中使用的一个原则. 在php和许多面向过程的语言中,可以偷懒是很有诱惑的.没有什么可以阻止你通过模块来构建一个假想的web. 面向对象编程是使程序员不会违背封装原则的一种方法.

在面向对象编程中,模块被组织成一个个对象. 这些对象拥有方法和属性. 从抽象的角度来看,方法是一个对象的所做的动作,而属性是对象的特性.从编程角度来看,方法就是函数而属性是变量. 在一个理想化的面向对象体系中,每个部份都是一个对象. 体系由对象及对象间通过方法来形成的联系构成.

一个类定义了对象的属性. 如果你在烘烤一组甜饼对象,那么类将会是甜饼机. 类的属性和方法是被调用的成员. 人们可以通过说出数据成员或者方法成员来表达.

每种语言提供了不同的途径来访问对象. php从c++中借用概念,提供一个数据类型用来在一个标识符下包含函数和变量。最初设计php的时候,甚至php3被开发出时,php并不打算提供开发超过10万行代码的大型项目的能力。随着php和zend引擎的发展,开发大型项目变得有可能,但无论你的项目规模多大,用类来书写你的脚本将可以让代码实现重用。这是一个好主意,特别当你愿意与别人分享你的代码的时候。

有关对象的想法是计算机科学上最令人兴奋的概念之一。开始很难掌握它,但我可以保证,一旦你掌握了它,用它的思维来思考将会非常自然。

第二节--php5 的对象模型

php5有一个单重继承的,限制访问的,可以重载的对象模型. 本章稍后会详细讨论的”继承”,包含类间的父-子关系. 另外,php支持对属性和方法的限制性访问. 你可以声明成员为private,不允许外部类访问. 最后,php允许一个子类从它的父类中重载成员.

//haohappy注:php4中没有private,只有public.private对于更好地实现封装很有好处.

php5的对象模型把对象看成与任何其它数据类型不同,通过引用来传递. php不要求你通过引用(reference)显性传递和返回对象. 在本章的最后将会详细阐述基于句柄的对象模型. 它是php5中最重要的新特性.

有了更直接的对象模型,基于句柄的体系有附加的优势: 效率提高, 占用内存少,并且具有更

php基础教程文档,PHP5基础教程相关推荐

  1. 计算机教程文档,计算机应用基础教程-20210323002444.doc-原创力文档

    <计算机应用基础教程> 授课教师:李宁 西北外事中专学校 旅游管理专业部 教学课时:1 教学内容:第二章Word 2003文字处理软件的应用 第三节文档的排版 教学H的与要求:I.掌握如何 ...

  2. html5基础知识文档,HTML5基础知识(1)

    原标题:HTML5基础知识(1) html5是万维网的核心语言.标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次重大修改.2014年10月29日,万维网联盟宣布,经过接近8年的艰苦努力, ...

  3. oracle基础知识文档,Oracle 基础知识分享PPT

    因测试组需求,所以把Oracle基础知识整理成了PPT,并讲解了一下(PPT无风格,简约派吐舌头). Oracle 是以高级结构化查询语言(SQL)为基础的大型关系数据库,通俗地讲它是用方便逻辑管理的 ...

  4. php mvc教程 文档,PHP培训教程教你快速打造PHP MVC框架[PHP基础教程]

    PHP培训教程教你快速打造PHP MVC框架[PHP基础教程] 简介 MVC框架在现在的开发中相当流行,不论你使用的是JAVA,C#,PHP或者IOS,你肯定都会选择一款框架.虽然不能保证100%的开 ...

  5. Hive基础学习文档和入门教程

    问题导读 1.hive除了包含用户接口.元数据,还包含哪些内容? 2.hive包含哪些操作? 3.hive数据能否被修改? 4.hive优化有哪些常用方法? 摘要: Hive 是建立在 Hadoop ...

  6. 计算机应用基础的文档,计算机应用基础

    <计算机应用基础>复习题五 一.单选题 1.自计算机问世至今已经经历了四个时代,划分时代的主要依据是计算机的______. A:规模 B:性能 C:功能 D:构成元件 答案: D 2.按使 ...

  7. 计算机基础教案文档,计算机基础知识教案

    /. 第1章计算机基础知识 [上课时间] [教学内容] 1.计算机发展的历史 2.计算机中的数据表示 3.计算机硬件系统的组成 4.微型计算机的组成 5.软件系统 6.多媒体技术 7.计算机病毒与防治 ...

  8. mysql菜鸟教程 文档_mysql菜鸟教程

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  9. 实施文档_Word 2010文档处理案例教程

    Word 2010文档处理案例教程 ISBN:978-7-80243-928-3/02 作者:黄桂林 江义火 郭燕 定价:38.00元 出版社:航空工业出版社 适用层次:通用 出版日期:2019-10 ...

最新文章

  1. 【Ubuntu入门到精通系列讲解】常用 Linux 命令的基本使用
  2. 2013cvpr的总结
  3. echarts雷达图线的样式_echarts 雷达图的个性化设置
  4. Windows下的定时任务
  5. CentOS安装Chrome
  6. 蓝桥杯 人物相关性分析 二分
  7. Spring vs Guice:重要的一个关键区别
  8. python分析数据差异的方法_用Python的两种方法进行方差分析
  9. 数列分块入门 8(LibreOj-6284)
  10. 计算机类型应用性能,[计算机组成原理]计算机系统性能评价
  11. ros开发语言python效率_Python 的开发效率真的比 Java高吗?
  12. CF Round#436 div2
  13. 偏差、方差和噪声的权衡关系
  14. 做高级PPT的一点经验
  15. 从全球制造业的迁移史,看中国制造业未来会怎么走?
  16. Unity3D网页游戏夺先发之势你hold得住吗?
  17. 色彩nbsp;标准卡大全及配色方案
  18. 相机视频展示开源平台ISpy
  19. 小号系统搭建接口教程
  20. 大数据助力广州精准扶贫

热门文章

  1. Opera视频出海非洲面临的技术挑战及应对
  2. 声网纳斯达克上市、TikTok推出TikTok For Business、亚马逊推出无代码应用| Decode the Week...
  3. JVM之本地方法栈Naitve Method Stack
  4. Golang 简洁架构实战
  5. 腾讯数字生态大会倒计时4天:请收下这份最全的TEG参会攻略~
  6. 浅析三种特殊进程:孤儿进程,僵尸进程和守护进程.
  7. Webpack2的基本使用
  8. C/C++ mysql 设置字符集
  9. redis 持久化详解 RDB和AOF 优缺点
  10. 一文彻底了解Logstash