php 5.2.x下载,PHP Version之PHP5.2.x到5.3.x

不向下兼容的变化

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

2、  Clearstatcache() 默认不再清楚缓存的realpath。

3、  数组函数natsort(),natcasesort(),usort(),uksort(),array_flip(),和array_unique()将不再接受对象作为参数。

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

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

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

7、  __toString()魔术方法不再接受参数。

8、  魔术方法__get,__set,__isset,__unset,__call应该总是public 并且不能是static,方法签名是必须的。

9、  现在__call魔术方法在访问private和protected方法时被调用,static方法用__callStatic。

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

11、              保留关键字:goto 、 namespace

新特性

1、  添加命名空间的支持

2、  添加静态晚绑定(后期静态绑定)支持

后期静态绑定:

原理:存储了在上一个“非转发调用”的类名。当进行静态方法调用时,该类名即为明确指定的那个(::运算符左侧的类);当进行非静态方法调用时,即为该对象所属的类。

“后期绑定”的意思是说,static:: 不再被解析为定义当前方法所在的类,而是在实际运行时计算的。

所谓的“转发调用“指的是通过以下几种方式进行的静态调用,self:: , parent:: , static:: , 以及forward_static_call()。

可用get_called_class()函数来得到被调用的方法所在的类名。

3、  添加带有限制的goto跳标签支持

4、  添加了原生的闭包支持,匿名函数,通常用作回调函数。

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

__callStatic:用静态方式调用一个不可访问的方法时使用。

__invoke 当尝试以调用函数的方式调用一个对象时,该方法被自动调用。

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

7、  使用Heredoc来初始化静态变量和类属性、常量。

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

9、  三元运算符有了简写形式 $b = $a==1 ? : 0;

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

11、              动态访问静态方法

12、              异常可以被内嵌

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

14、              Mail()支持邮件发送日志。

SAPI模块的改变

@TODO

PHP 5.3弃用的功能

1、  PHP5.3新增了两个错误等级:

E_DEPRECATED 说明一个函数或者功能已经被弃用

E_USER_DEPRECATED表明用户代码中的弃用功能

2、  弃用的函数

394f58ff3d7dff87de0a85db4f3f5913.png

1579cd85a90c578d949fd6fe9feb6386.png

3、  弃用的功能

弃用通过引用分配new的返回值(带有歧义的翻译 呵呵哒!!)

真相:不能直接引用new的返回值 $a = &new Redis();

调用时传递引用被弃用

PHP 5.3保留的功能

1、  is_a()函数被保留。

新参数

1、  PHP核心

round() 新增mode参数

strstr() 和 stristr()新增 before_needle 参数,若为 TRUE,strstr() 将返回 needle 在 haystack 中的位置之前的部分

Exception::__construct() - 新增 previous 参数,表明异常链中的前一个异常。

……………………………..

@TODO

2、  json

json_encode() 新增options参数 编码格式

json_decode() 新增depth参数 User specified recursion depth.

3、  流(Streams)

@TODO

新函数

1、  PHP核心

cde62ebf1fd7ef34bdc265d962e750c6.png

2、  Date/Time

date_add() 向DateTime对象增加一定的数量的天、月、年、小时、分钟、秒

date_create_from_format() 根据给定的格式返回DateTime对象。

date_diff()返回两个DateTime对象的不同之处

date_get_last_errors() 返回最后日期/时间造作产生的警告或错误

date_parse_from_format() 获取一个日期的信息

date_sub() 从DateTime对象中减去一定的时间

timezone_version_get() 返回当前时区的数据库信息

3、  Hash

hash_copy() 复制哈希环境 拷贝上下文资源

4、  IMAP

@TODO

5、  JSON

json_last_error() 返回最后发生json的错误

6、  MySQL 改进

614fa5f18672a5251b7fa0495db6c368.png

…………………………..

@TODO

新的类常量

1、  PDO:: FB_ATTR_DATE_FORMAT 为日期设置格式

PDO::FB_ATTR_TIME_FORMAT - 为时间设置格式.

PDO::FB_ATTR_TIMESTAMP_FORMAT - 为时间戳设置格式.

installing mysql,this may take a few minutes,hold on plz wdcp卡住解决办法

centos6安装wdcp时make in progress卡住的解决办法 今天在一台centos6的vps上安装wdcp出现的这个问题,到安装程序滚动至下面这里时出现"卡死". ...

wdcp的安装扩展模块

其实就是官方包里面的所有附加模块全部支持啦.~~是在官方的基础上修改的优化了每次都解压缩php源码包,按需解压缩使用方法如下wget http://git.oschina.net/loblog/mem ...

How to install / setup /upgrade PHP 5.5.x on Ubuntu 12.04 LTS

原文:http://www.dev-metal.com/how-to-setup-latest-version-of-php-5-5-on-ubuntu-12-04-lts/ 最近遇到了要在ubunt ...

zabbix--3.0--3

使用JMX监控jvm   vim /usr/local/tomcat/bin/catalina.sh 添加如下内容 CATALINA_OPTS="$CATALINA_OPTS -Dcom ...

2-21-源码编译安装LAMP

编译安装LAMP所需要及其所使用的源码版本: httpd version:httpd-2.4.16 apr version:apr-1.5.2 pcre version:pcre-8.37 apr ...

Zabbix 系统概述与部署

Zabbix是一个非常强大的监控系统,是企业级的软件,来监控IT基础设施的可用性和性能.它是一个能够快速搭建起来的开源的监控系统,Zabbix能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的 ...

apche编译安装

常见的网页类型:htm,html,shtml,stm.php,asp,aspx,shtm,jsp等等Apache本事只处理静态页面,处理动态页面需要使用libphp5.so这个模块去工作,编译php也 ...

java -version 问题

我把 JAVA_HOME 从8改成了 7 , 为什么还是 显示的8啊 ! E:\sv0\jars>java -version java version "1.8.0_111" ...

随机推荐

Qt create 配置git版本管理

配置步骤: git的下载安装.(此时,您应该明白git和github的区别) 如下图1-5,Tool –> Options –> Version Control –> Git –&g ...

开源的DevOps开发工具箱

DevOps是一组过程.方法与系统的统称,用于促进开发(应用程序/软件工程).技术运营和质量保障(QA)部门之间的沟通.协作与整合.在DevOps的整个流程中,使用一些开源工具可以促进开发与运维之间的 ...

Android开发笔记一(hello world)

UI:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值