php5的简单介绍

来源:互联网 发布:广西广电网络设置 编辑:程序博客网 时间:2024/05/17 04:09

  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的最理想地方,有实例代码,疑难解析,技术文档等等,欢迎你访问。