php5.3与php5.2开发区别和新特性

php5.3与php5.2开发区别和新特性

ID:8799530

大小:40.50 KB

页数:7页

时间:2018-04-08

php5.3与php5.2开发区别和新特性_第1页
php5.3与php5.2开发区别和新特性_第2页
php5.3与php5.2开发区别和新特性_第3页
php5.3与php5.2开发区别和新特性_第4页
php5.3与php5.2开发区别和新特性_第5页
资源描述:

《php5.3与php5.2开发区别和新特性》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、PHP5.3与PHP5.2开发区别和新特性时间:2010-09-1210:12来源:PHP100中文网作者:网络点击:324次【字号:大中小】PHPV5.3发布已经很久。PHPV5.3中的新特性系列文章将持续介绍该发行版提供的令人兴奋的新特性。第1部分介绍了PHP5.3中对面向对象编程及对象处理所做的更改,第2部分介绍了闭包函数及lambda函数。第3部分探讨了名称空间,这是该PHP版   PHPV5.3 发布已经很久。“PHPV5.3中的新特性”系列文章将持续介绍该发行版提供的令人兴奋的新特性。  

2、  第1部分介绍了PHP5.3中对面向对象编程及对象处理所做的更改,    第2部分介绍了闭包函数及lambda函数。    第3部分探讨了名称空间,这是该PHP版本中最令人期待也是最具争议的特性之一。    第4部分中,我们进一步研究了Phar,这是一种用于PHP的归档格式。  简介  本系列着重介绍PHPV5.3中的新特性,例如名称空间、闭包、对象管理、面向对象编程和Phar。虽然这些动人的新特性作为该语言的增补广受欢迎,但PHPV5.3同时也是为进一步优化PHP而设计的。它构建在流行、稳定的PH

3、PV5.2的基础上,并对该语言作了增强,使之更加强大。在本文中,了解PHPV5.3中的变化,以及从PHPV5.2升级到PHPV5.3时需要考虑的一些事情。  语法变化  该语言新增了名称空间和闭包(在第2部分和第3部分中有讨论到),增加了更多的保留字。从PHPV5.3开始,namespace不再用作标识符。closure类现在是一个保留类,但它仍然可以作为有效的标识符。清单1显示了一些例子,由于新增的保留字的缘故,有些语句在PHPV5.3中不再有效。  清单1.无效的PHP语句  // the fun

4、ction definition below will throw a fatal error in PHP 5.3, but is perfectly  // valid in 5.2  function namespace()  {  ....  }  // same with this class definition  class Closure  {  ....  }  PHPV5.3中还增加了对goto语句的支持。现在,goto是一个保留字。goto语句在现代语言中不太常见(您也许记得在B

5、ASIC中如何使用goto),但是有些情况下,goto语句的确方便。清单2显示了一个如何使用goto语句的例子。  清单2.PHP中的goto语句  echo "This text will get outputted";  goto a;  echo "This text will get skipped";  a:  echo "This text will get outputted";  goto的一个可能的用例是中断深度嵌套的循环和if语句。这将使代码阅读起来清晰很多。  函数和方法的变化 

6、 在PHPV5.3中,函数和方法没有大的变化,但还是有一些增强,以帮助解决PHP中的一些突出问题并提高性能。本节讨论一些较为显著的变化。  在之前版本的PHP中,数组函数atsort、natcasesort、usort、uasort、uksort、array_flip和array_unique可以以参数形式传递对象而不是数组。然后,这些函数将对象的属性当做数组的键和值。PHPV5.3中不再支持这一点,所以需要首先将对象转换成数组。清单3展示了如何修改代码。  清单3.为某些函数修改代码,将对象转换成数

7、组  $obj = new stdClass;  $obj->a = '1';  $obj->b = '2';  $obj->c = '3';  print_r(array_flip($obj)); // will NOT work in PHP 5.3, but will in PHP 5.2  print_r(array_flip((array) $obj)); // will work in PHP 5.3 and 5.2  魔术类方法现在受到更严格的限制。下面的方法必须具有公共可见性:  __

8、get  __set  __isset  __unset  __call  现在,当在静态上下文中使用__call时,为了应对上述变化,可以使用新的__callStatic()魔术方法。除了不接受参数的__isString()魔术方法以外,这些方法的必需参数都是强制性的,并且必须提供。清单4显示了如何使用这些方法以及它们的必需参数。  清单4.使用魔术方法  class Foo  {  public function __get($key) {} // 

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。