快速业务通道

PHP V5迁移指南

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
使用 abstract 关键字强制该行为,如下所示。

清单 9. abstract.php5

<?php
abstract class Configuration
{
 protected PHP V5迁移指南 - 凌众科技

快速业务通道

PHP V5迁移指南

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
content

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号

items = array();
 public function __construct() {
  $this->load();
 }
 abstract protected function load();
 public function get( $key ) {
  return $this->_items[ $key ];
 }
}
class DBConfiguration extends Configuration
{
 protected function load() {
  $this->_items[ ''imgpath'' ] = ''images'';
 }
}
$c = new DBConfiguration();
echo( $c->get( ''imgpath'' )."\n" );
?>

现在,所有要将 Configuration 类型的对象实例化的尝试都会出错,因为系统认为该类是抽象的并且不完整。

静态方法和成员

PHP V5 中的另一个重要的新功能是支持对类使用静态成员和方法。通过使用这种功能,您可以使用流行的单例模式。这种模式对于 Configuration 类是十分理想的,因为应用程序应当仅有一个配置对象。

清单 10 显示了 PHP V5 版的 Configuration 类作为一个单例。

清单 10. static.php5

<?php
class Configuration
{
 private PHP V5迁移指南 - 凌众科技

快速业务通道

PHP V5迁移指南

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
content

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号

items = array();
 static private PHP V5迁移指南 - 凌众科技
快速业务通道

PHP V5迁移指南

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
content

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号

instance = null;
 static public function get() {
  if ( self:: PHP V5迁移指南 - 凌众科技
快速业务通道

PHP V5迁移指南

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
content

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号

instance == null )
    self:: PHP V5迁移指南 - 凌众科技
快速业务通道

PHP V5迁移指南

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
content

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号

instance = new Configuration();
  return self:: PHP V5迁移指南 - 凌众科技
快速业务通道

PHP V5迁移指南

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
content

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号

instance;
 }
 private function __construct() {
  $this->_items[ ''imgpath'' ] = ''images'';
 }
 public function __get( $key ) {
  return $this->_items[ $key ];
 }
}
echo( Configuration::get()->{ ''imgpath'' }."\n" );
?>

static 关键字有很多用法。当需要访问单个类型的所有对象的某些全局数据时,请考虑使用此关键字。

Magic Method

PHP V5 中的另一个很大的新功能是支持 magic method,使用这些方法使对象可以迅速更改对象的接口 —— 例如,为 Configuration 对象中的每个配置项添加成员变量。无须使用 get() 方法,只要寻找一个特殊项将它当作一个阵列,如下所示。

清单 11. magic.php5

<?php
class Configuration
{
 private PHP V5迁移指南 - 凌众科技

快速业务通道

PHP V5迁移指南

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
content

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号

items = array();
 function __construct() {
  $this->_items[ ''imgpath'' ] = ''images'';
 }
  function __get( $key ) {
  return $this->_items[ $key ];
 }
}
$c = new Configuration();
echo( $c->{ ''imgpath'' }."\n" );
?>

在本例中,我创建了新的 __get() 方法,只要使用者寻找对象上的成员变量时即调用此方法。然后,方法中的代码将使用项阵列来查找值并返回该值,就像有一个专门用于该关键字的成员变量在那儿一样。假定对象就是一个阵列,在脚本的末尾,您可以看到使用 Configuration 对象就像寻找 imgpath 的值一样简单。

从 PHP V4 迁移到 PHP V5 时,必须要注意这些在 PHP V4 中完全不可用的语言特性,还必须重新验证类来查看可以怎样使用这些类。

异常

最后介绍 PHP V5 中的新异常机制来结束本文。异常为考虑错误处理提供了一种全新的方法。所有程序都不可避免地会生成错误 —— 找不到文件、内存不足等等。如果不使用异常,则必须返回错误代码。请看下面的 PHP V4 代码。

清单 12. file.php4

<?php
function parseLine( $l )
{
  // ...
  return array( ''error'' => 0,
   data => array() // data here
  );
}
function readConfig( $path )
{
 if ( $path == null ) return -1;
 $fh = fopen( $path, ''r'' );
 if ( $fh == null ) return -2;
 while( !feof( $fh ) ) {
  $l = fgets( $fh );
  $ec = parseLine( $l );
  

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号