>  기사  >  백엔드 개발  >  回顾与展望PHP 5.0的变化与PHP 6.0展望_PHP教程

回顾与展望PHP 5.0的变化与PHP 6.0展望_PHP教程

WBOY
WBOY원래의
2016-07-13 17:31:05741검색

  目前,大多数php(做为现在的主流开发语言)安装还是使用php(做为现在的主流开发语言) 4.x版本。实际上,php(做为现在的主流开发语言) 5.0已经出台一段时间了,而如今php(做为现在的主流开发语言) 5.1.1也刚刚发行。如果你还没有升级到这些新版本,那么让我们一同看一下在新版的php(做为现在的主流开发语言)中的变化,并在最后讨论对于php(做为现在的主流开发语言) 6所期望的特性。
  一、php(做为现在的主流开发语言) 5.0中的变化
  作为一个全新的版本号,在php(做为现在的主流开发语言) 4和php(做为现在的主流开发语言) 5之间存在许多实质性的区别。大多数的炒作主要围绕被重新改写过的新的对象模型。php(做为现在的主流开发语言) 5版本更为完整并且运行性能更为良好。在php(做为现在的主流开发语言) 4中,对象其实仅是一个粗糙的数据类型,并且是值引用的。在试图保持尽可能多的向后兼容性的同时,在php(做为现在的主流开发语言) 5中,设置zend.ze1_compatibility_mode可以允许与版本4中方法的兼容。当然,php(做为现在的主流开发语言) 5也存在一些向后不兼容的改变,具体包括:
  ·新的保留下来的关键字大多数与对象模型相关(exception,final, php(做为现在的主流开发语言)_user_filter,interface,implements,extends,public,private,protected,abstract,clone,try,catch,
throw)。在php(做为现在的主流开发语言) 4中保留的两个单词不再存在(cfunction,old_function)。
  ·如果一个对象没有任何属性,那么它不再为空(empty)。
  ·现在array_merge()函数只接收数组。
  ·类可以在使用前声明(依赖于具体情况)。
  ·get_class(),get_parent_class()和get_class_methods()现在能够返回一个大小写敏感的结果,而以前的返回结果都是小写的。
  ·strrpos()和strripos()现在使用整个字符串。例如,var_dump(strrpos(ABCDEF,DAF))将在php(做为现在的主流开发语言) 4中返回int(3),而在php(做为现在的主流开发语言) 5中返回bool(false)
  ·如果$_SERVER存在,它将用argc和argv进行填充-这就允许CLI版本总是可以存取这些数据。
  ·当传递一个无效的IP地址时,ip2long()返回FALSE而不是-1。
  ·定义在一个包括文件中的函数现在能够在任何时刻为主文件所调用。如果文件两次被包括(这时函数已经被定义了),php(做为现在的主流开发语言) 5也将发出一个致命的错误。
  ·require_once()和include_once函数现在考虑到了Windows大小的不敏感性,并且将每次仅包括一个文件-即使该函数以不同大小写的文件名被调用多次。
  ·摆脱了原来php(做为现在的主流开发语言) 4中的警告。新的php(做为现在的主流开发语言) 5在遇到一个无效的字符串偏移量时将抛出一个错误。


  ·Tokenizer扩展不再定义闲置的T_ML_COMMENT常量。
  注意,这些看似较多的不兼容的变化其实并不大,而且如果你想把原有代码移植到php(做为现在的主流开发语言) 5中的话,有可能只对你的脚本作极少量的修改即可。php(做为现在的主流开发语言) 5为做许多事情提供了更好的方法,但是如果你的目的仅是为了能使程序运行,那么你不会遇到太多的麻烦。在php(做为现在的主流开发语言) 5中的另外一些变化有:

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/509122.htmlTechArticle目前,大多数php (做为现在的主流开发语言) 安装还是使用php (做为现在的主流开发语言) 4.x版本。实际上,php (做为现在的主流开发语言)...
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.