首页 php教程 php手册 Php版本不同版本比较

Php版本不同版本比较

Jun 06, 2016 pm 08:02 PM
php 不同 兼容 变更 比较 版本

PHP5.5.X 不向后兼容变更: 1.已放弃对 Windows XP 和 2003 的支持。构建 Windows 版本的 PHP 需要 Windows Vista 或更新的系统。 2.为使 pack() 和 unpack() 更兼容 Perl 做了一些变更,在使用这两个函数时,为保持较好的兼容性,可使用 version_compare 函

PHP5.5.X

不向后兼容变更:

1.已放弃对 Windows XP 和 2003 的支持。构建 Windows 版本的 PHP 需要 Windows Vista 或更新的系统。

2.为使 pack()unpack() 更兼容 Perl 做了一些变更,在使用这两个函数时,为保持较好的兼容性,可使用<span><span>version_compare</span></span>函数对php版本进行比较。

3.移除php logo guids(包括php_logo_guid()php_egg_logo_guid()php_real_logo_guid()zend_logo_guid()函数)。

新增功能:

1.新增generators,generators提供了一种更容易的方法来实现简单的对象迭代,但没有实现一个具有Iterator 接口的类所带来的性能开销和复杂性。

2.新增finally关键字

3.foreach支持list(),foreach 控制结构现在支持通过list() 构造将嵌套数组分离到单独的变量.

4.empty()支持任意表达式,而不仅仅是变量。

5.数组和字符串现在可以直接取消引用来访问各个元素和字符(例如:<span><span>echo [</span><span>1</span><span>, </span><span>2</span><span>, </span><span>3</span><span>][</span><span>0</span><span>];</span></span><span><span>echo </span><span>'PHP'</span><span>[</span><span>0</span><span>];</span></span>)。

6.新的密码哈希 API。

7.改进GD(翻转支持使用新的 imageflip() 函数,高级裁剪支持使用imagecrop() &imagecropauto() 函数,WebP 的读写分别支持使用imagecreatefromwebp() &imagewebp())。


PHP5.4.X

不向后兼容变更:

1.不再支持 安全模式 。

2.移除 魔术引号 get_magic_quotes_gpc()get_magic_quotes_runtime() 现在总是返回FALSE 。 调用 set_magic_quotes_runtime() 将产生一个E_CORE_ERROR 级别的错误

3.register_globals 和register_long_arrays php.ini 指令被移除。

4.调用时的引用传递 被移除。 

5.break 和continue 语句不再接受可变参数( 比如: break 1 + foo() * $bar; )。像类似 break 2; 这样的固定参数仍可使用。受此变化影响,不再允许出现break 0;continue 0;

6.在 日期与时间扩展 中,不再支持时区使用 TZ(TimeZone)环境变量设置。必须使用 date.timezone php.ini 配置选项或 date_default_timezone_set() 函数来指定时区。PHP 将不再尝试猜测时区,而是回退到“UTC”并发出一条E_WARNING 错误。

7.非数字的字符串偏移量,比如 $a['foo'] 此处 $a 是一个字符串,现在使用isset() 时返回 false,使用empty() 时返回 true,并产生一条E_WARNING 错误。

8.数组转换成字符串将产生一条 E_NOTICE 级别的错误,但返回的结果仍是字符串"Array"

9.NULLFALSE 、或 一个空字符串被添加成一个对象的属性时将发出一条E_WARNING 级别的错误,而不是 E_STRICT

10.现在参数名使用全局变量将会导致一个致命错误。禁止类似function foo($_GET, $_POST) {} 这样的代码。

11.Salsa10 和 Salsa20 哈希算法 被移除

12.当使用两个空数组作为参数时, array_combine() 现在返回array() 而不是 FALSE

13.htmlentities() 将像htmlspecialchars() 一样处理亚洲字符集,这是以前 PHP 版本的处理情况,但现在将会发出一条E_STRICT 错误。 

14.强烈建议不要再使用 eregi() ,此特性在最新版本中被移除。 

15.下列关键字现在被 保留 ,且不能用于函数名或类名(traitcallableinsteadof)。

16.下列函数已从 PHP 中移除(define_syslog_variables()import_request_variables()session_is_registered()session_register()session_unregister()mysqli_bind_param()mysqli_bind_result()mysqli_client_encoding()mysqli_fetch()mysqli_param_count()mysqli_get_metadata()mysqli_send_long_data() 、 mysqli::client_encoding() , mysqli_stmt::stmt())。

新增功能:

1.新增支持 traits 。

2.新增短数组语法,比如$a = [1, 2, 3, 4];$a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4];

3.新增支持对函数返回数组的成员访问解析,例如foo()[0]

4.现在闭包 支持 $this

5.现在不管是否设置short_open_tag php.ini 选项,= 将总是可用。

6.新增在实例化时访问类成员,例如:(new Foo)->bar()

7.现在支持Class::{expr}() 语法。

8.新增二进制直接量,例如:0b001001101

9.改进解析错误信息和不兼容参数的警告。

10.SESSION 扩展现在能追踪文件的 上传进度 。

11.内置用于开发的CLI 模式的 web server 。


PHP5.3.X

不向后兼容变更:

1.在 PHP 5.3.x 的所有绑定扩展中应用了新的内部参数解析API, 当给函数传递了不兼容的参数时将返回 NULL. 但有一些例外,比如函数 get_class() 在出现错误时将会返回 FALSE.

2.clearstatcache() 默认不再清除缓存的 realpath.

3.realpath() 现在是完全与平台无关的. 结果是非法的相对路径比如 __FILE__ . "/../x" 将不会工作.

4.call_user_func() 系列函数即使被调用者是一个父类也使用 $this.

5.数组函数 natsort(), natcasesort(), usort(), uasort(), uksort(), array_flip(), 和 array_unique() 将不再接受对象作为参数. 在将这些函数应用于对象时, 请首先将对象转换为数组.

6.按引用传递参数的函数在被按值传递调用时行为发生改变. 此前函数将接受按值传递的参数, 现在将抛出致命错误. 之前任何期待传递引用但是在调用时传递了常量或者字面值 的函数, 需要在调用前改为将该值赋给一个变量。

7.新的 mysqlnd 库需要使用 MySQL 4.1 新的 41 字节密码格式。继续使用旧的 16 字节密码将导致 mysql_connect() 和其它类似函数 抛出 "mysqlnd cannot connect to MySQL 4.1+ using old authentication." 错误.

8.新的 mysqlnd 库将不再读取 MySQL 配置文件(my.cnf/my.ini), 这与旧版本的 libmysql 库不同. 如果你的代码依赖于这些配置 文件, 你可以使用 mysqli_options() 显式地加载它. 注意, 这意味着如果 PDO 中的 MySQL 支持使用了 mysqlnd 进行编译,PDO 特有常量 PDO::MYSQL_ATTR_READ_DEFAULT_FILEPDO::MYSQL_ATTR_READ_DEFAULT_GROUP 将是未定义的.

9.SplFileInfo 及其相关目录类会移除末尾的 /.

10.__toString 魔术方法不再接受参数.

11.魔术方法 __get, __set, __isset, __unset, and __call 应该总是公共的(public)且不能是静态的(static). 方法签名是必须的.

12.现在 __call 魔术方法在访问私有的(private)和被保护的(protected)方法时被调用.

13.函数内 include 或者 require 一个文件时,文件内 将不能使用 func_get_arg(), func_get_args()func_num_args() 函数。

14.新增了一个包裹在 MHASH 扩展外面的仿真层。但是并非所有的算法都涉及到了,值得注意的是 s2k 哈希算法。这意味着 s2k 哈希算法在 PHP 5.3.0 中不再可用。

新增功能:

1.添加了命名空间的支持.

2.添加了静态晚绑定支持. 

3.添加了支持. 

4.添加了原生的闭包(Lambda/匿名函数)支持.

5.新增了两个魔术方法, __callStatic 和 __invoke. 

6.添加了 Nowdoc 语法支持, 类似于 Heredoc 语法, 但是包含单引号.

7.可使用双引号声明 Heredoc, 补充了 Nowdoc 语法.

8.可在类外部使用 const 关键词声明 常量.

9.三元运算操作符有了简写形式: ?:.

10.HTTP 流包裹器将从 200 到 399 全部的状态码都视为成功。

11.动态访问静态方法变为可能.

12.异常可以被内嵌.

13.新增了循环引用的垃圾回收器并且默认是开启的.

14.mail() 现在支持邮件发送日志. (注意: 仅支持通过该函数发送的邮件.)



本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

CakePHP 项目配置 CakePHP 项目配置 Sep 10, 2024 pm 05:25 PM

在本章中,我们将了解CakePHP中的环境变量、常规配置、数据库配置和电子邮件配置。

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

CakePHP 日期和时间 CakePHP 日期和时间 Sep 10, 2024 pm 05:27 PM

为了在 cakephp4 中处理日期和时间,我们将使用可用的 FrozenTime 类。

CakePHP 文件上传 CakePHP 文件上传 Sep 10, 2024 pm 05:27 PM

为了进行文件上传,我们将使用表单助手。这是文件上传的示例。

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

在本章中,我们将学习以下与路由相关的主题?

讨论 CakePHP 讨论 CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP 是 PHP 的开源框架。它的目的是使应用程序的开发、部署和维护变得更加容易。 CakePHP 基于类似 MVC 的架构,功能强大且易于掌握。模型、视图和控制器 gu

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

CakePHP 创建验证器 CakePHP 创建验证器 Sep 10, 2024 pm 05:26 PM

可以通过在控制器中添加以下两行来创建验证器。

See all articles