搜索
首页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
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么读取字符串后几个字符php怎么读取字符串后几个字符Apr 22, 2022 pm 08:31 PM

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace("&nbsp;","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么查找字符串是第几位php怎么查找字符串是第几位Apr 22, 2022 pm 06:48 PM

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。

See all articles

热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.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具