php5的简单介绍

本文详细介绍了PHP5的重要新特性,包括改进的对象模型、异常处理和名称空间支持。此外,还探讨了PHP5如何增强XML处理能力、提供更好的数据库支持,并深入讲解了面向对象编程的细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  php教程网是你学习php的最理想地方,有实例代码,疑难解析,技术文档等等,欢迎你访问。

  PHP5在长时间的开发及多个预发布版本后,2004年7月13日,PHP5.0发布。该版本以Zend引擎Ⅱ为引擎,并且加入了新功能如PHP Date Objects(PDO)。现在PHP5.0版本强化更多的功能。首先,完全实现面向对象,提供名为PHP兼容模式的功能。其次是XML功能,PHP5.0版本支持可直观地访问XML数据、名为SimpleXML的XML处理用界面。同时还强化了XML Web服务支持,而且标准支持SOAP扩展模块。数据库方面,PHP新版本提供旨在访问MySOL的新界面——MySQL。除此前的界面外,还可以使用面向对象界面和预处理语句(Prepared Statement)等MySQL的新功能.另外,PHP5.0上还捆绑有小容量RDBMS-SQLite.

1、新的对象模式 (New Object Mode)
  PHP5 中的对象已经进行了较系统、较全面的调整,现在的样子可能看起来会有些类似于 Java。本小节着重讲述 PHP5 中新的对象模式,并举了一些较简易的例子来说明。就让本节成为你的 PHP5 之旅的一个新起点吧。:)

  * 构造函数和析构函数

  * 对象的引用

  * 对象的克隆

  * 对象中的私有、公共及受保护模式

  * 接口 (Interfaces)

  * 抽象类

  * __call

  * __set 和 __get

  * 静态成员

  构造函数和析构函数

  在 PHP4 中,当函数与对象同名时,这个函数将成为该对象的构造函数,并且在 PHP4 中没有析构函数的概念。

  在 PHP5 中,构造函数被统一命名为 __construct,并且引入了析构函数的概念,被统一命名为 __destruct。

  对象的引用

  在PHP4中,传递变量给一个函数或方法,实际是把这个变量做了一次复制,也就意味着你传给函数或方法的是这个变量的一个副本,除非你使用了引用符号“&” 来声明是要做一个引用,而不是一个 Copy。在 PHP5中,对象总是以引用的形式存在的,对象中的赋值操作同样也都是一个引用操作。

  对象的克隆

  当一个对象始终以引用的形式来被调用时,如果我想得到该对象的一个副本,该怎么办呢?PHP5 提供了一个新的功能,就是对象的克隆,语法为 __clone。

  

  对象中的私有、公共及保护模式

  PHP4 中,一个对象的所有方法和变量都是公共的,这意味着你可以在一个对象的外部操作其中的任意一个变量和方法。PHP5 引入了三种新的用来控制这种存取权限的模式,它们是:公共的(Public)、受保护的(Protected)及私有的(Private)。

  公共模式(Public):允许在对象外部进行操作控制。

  私有模式(Private):只允许本对象内的方法对其进行操作控制。

  受保护模式(Protected):允许本对象及其父对象对其进行操作控制。

  

  接口 (Interfaces)

  PHP4中的对象支持继承,要使一个对象成为另一个对象的派生类,你需要使用类似 “class foo extends parent” 的代码来控制。PHP4 和 PHP5 中,一个对象都仅能继承一次,多重继承是不被支持的。不过,在 PHP5中产生了一个新的名词:接口,接口是一个没有具体处理代码的特殊对象,它仅仅定义了一些方法的名称及参数,此后的对象就可以方便的使用'implement' 关键字把需要的接口整合起来,然后再加入具体的执行代码。

  这对提高代码的可读性及通俗性有很大的帮助,通过上面的例子可以看到,对象 foo 包含了displayable 和 printable 两个接口,这时我们就可以清楚的知道,对象 foo 一定会有一个 display() 方法和一个print() 方法,只需要去了解接口部分,你就可以轻易的操作该对象而不必去关心对象的内部是如何运作的。

  抽象类

  抽象类不能被实例化。

  抽象类与其它类一样,允许定义变量及方法。

  抽象类同样可以定义一个抽象的方法,抽象类的方法不会被执行,不过将有可能会在其派生类中执行。

  __call

  PHP5 的对象新增了一个专用方法 __call(),这个方法用来监视一个对象中的其它方法。如果你试着调用一个对象中不存在的方法,__call 方法将会被自动调用。

  __set 和 __get

  这是一个很棒的方法,__set 和 __get 方法可以用来捕获一个对象中不存在的变量和方法。

  类型指示

  在 PHP5 中,你可以在对象的方法中指明其参数必须为另一个对象的实例。

  

  静态成员

  静态成员和静态方法在面象对象编程的术语中被称作 “类方法(class methods)” 和 “类变量(class variables)”。

  “类方法” 在一个对象没有实例化前允许被调用。同样,“类变量” 在一个对象没有实例化前可以被独立操作控制(不需要用一个对象的方法来控制)。

2、异常处理 (Exceptions)
  异常处理是公认的处理程序错误的理想方法,在 Java 及 C 中都有这个概念,我们欣喜的看到,在 PHP5 已经加入了这方面的应用。你可以尝试使用 “try” 和 “catch” 来控制程序的错误。当有错误发生的时候,代码会把错误交给 “catch” 子句来处理,在 “catch” 子句中,你需要指明要把错误交给某个对象处理,这样做可以使代码结构看起来更清晰,因为现在我们可以把所有的错误信息交给一个对象来处理。

  自定义错误处理

  你可以很方便的用自定义的处理错误的代码来控制你的程序中的意外。你仅仅需要从异常类中派生出一个自己的错误控制类,在你自己的错误控制类中,你需要有一个构造函数和一个 getMessage 方法。

3、名称空间 (Namespace)
  名称空间对类的分组或函数分组很有用。它可以把一些相关的类或函数给组合到一起,方便以后调用。

  例:名称空间

  <?php

  namespace Math

  {

  class Complex

  {

  //...code...

  function __construct()

  {

  print("hey");

  }

  }

  }

  $m = new Math::Complex();

  ?>

  注意你需要在何种情况下使用名称空间,在实际运用中,你可能会需要声明两个或多个名称一样的对象来做不同的事情,那么你就可以把他们分别放到不同的名称空间中去(但接口是要相同的)。
  php教程网是你学习php的最理想地方,有实例代码,疑难解析,技术文档等等,欢迎你访问。

PHP动态网页制作课程大纲(48课时) 类型 课程标题 内容 课时 基础篇 B/S模式程序介绍 什么是B/S类型软件 B/S类型软件的工作流程 B/S程序设计思想 2 LAMP运行环境搭建 Apache编译安装 MySQL编译安装 第三方PHP类库安装 Php编译安装 实际样例(2个) 2 PHP语言、语法介绍 HTML语言回顾、PHP语言介绍、语法规则、工作模式、基本函数介绍 实际样例(5个) 4 PHP语言元素以及结构 编程规范、PHP语言变量、数据类型、类型转换、运算优先顺序 实际样例(8个) 3 中级篇 PHP流程控制 顺序结构 分支结构 循环结构 实际样例(13个) 3 PHP字符以及字符处理 字符处理 字符处理的基本函数 正则表达式 实际样例(16个) 3 PHP函数的使用 如何定义函数 函数参数的传递方法 递归、嵌套函数的使用方法 自定义函数的方法以及使用技巧 实际样例(17个) 4 PHP数组的使用 数组的定义 一维数组、二维数组的使用方法 与数组相关的函数使用方法 实际样例(12个) 4 PHP数据的存取与传递 Session、cookie在实际项目中的应用 Session、cookie的定义以及使用方法 Session、cookie的记录方式 处理Session、cookie的函数 复杂样例(13个) 5 PHP文件操作 文件操作在实际项目中的应用 文件操作的各种函数 目录与文件的权限控制 文件的保存与读取 实际样例(16个) 8 数据库操作 数据库介绍 Sql server介绍和管理 MySQL基本介绍 MySQL管理 PHP操作MySQL函数介绍 实际例子(15个) 9 提高篇 PHP通过数据库操作实现分页 2 文件上传 文件上传---物理文件模式 通过保存文件模式实现文件上传 2 文件上传---数据库模式 通过数据库保存二进制方式实现文件上传 1 复杂留言板小程序 6
软件介绍 ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,是为了敏捷WEB应用 开发和简化企业级应用开发而诞生的。拥有众多的优秀功能和特性,经历了三年多发展的同时,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和 改进,众多的典型案例确保可以稳定用于商业以及门户级的开发。 ThinkPHP借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,采用单一入口模式等,融合了Struts的 Action思想和JSP的TagLib(标签库)、RoR的ORM映射和ActiveRecord模式,封装了CURD和一些常用操作,在项目配置、类 库导入、模版引擎、查询语言、自动验证、视图模型、项目编译、缓存机制、SEO支持、分布式数据库、多数据库连接和切换、认证机制和扩展性方面均有独特的 表现。 使用ThinkPHP,你可以更方便和快捷的开发和部署应用。当然不仅仅是企业级应用,任何PHP应用开发都可以从ThinkPHP简单 和快速的特性中受益。ThinkPHP本身具有很多的原创特性,并且倡导大道至简,开发由我的开发理念,用最少的代码完成更多的功能,宗旨就是让WEB应 用开发更简单、更快速。为此ThinkPHP会不断吸收和融入更好的技术以保证其新鲜和活力,提供WEB应用开发的最佳实践! ThinkPHP遵循Apache2开源许可协议发布,意味着你可以免费使用ThinkPHP,甚至允许把你基于ThinkPHP开发的应用开源或商业产 品发布/销售。 ThinkPHP v5.0.15 更新日志: 改进View类 改进chunk方法 改进模板引擎的表达式语法 改进自关联查询多级调用问题 关联定义增加`selfRelation`方法用于设置是否自关联 改进file类型的缓存`inc`和`dec`方法不改变缓存有效期 改进软删除 支持设置`deleteTime`属性关闭 改进`union`查询 改进查询缓存 优化File缓存自动生成空目录的问题 改进日志写入并发问题 修正`MorphTo`关联 改进`join`自关联查询 改进`case`标签解析 改进Url类对`url_convert`配置的支持
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值