欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

回顾与展望PHP 5.0的变化与PHP 6.0展望

程序员文章站 2024-02-15 16:10:16
...
  目前,大多数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中的另外一些变化有: