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()函数来得到被调用的方法所在的类名。
http://php.net/manual/zh/language.oop5.late-static-bindings.php
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、 弃用的函数


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核心

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 改进

…………………………..
@TODO
新的类常量
1、 PDO:: FB_ATTR_DATE_FORMAT 为日期设置格式
PDO::FB_ATTR_TIME_FORMAT - 为时间设置格式.
PDO::FB_ATTR_TIMESTAMP_FORMAT - 为时间戳设置格式.
PHP Version之PHP5.2.x到5.3.x的更多相关文章
- 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也 ...
- 学习zabbix(六)
实验环境 实验用2到2台机器,实验所用机器系统环境如下,可以看到2台机器的主机名和IP地址 ? 1 2 3 4 5 6 7 8 9 10 [root@linux-node1 ~]# cat /etc/ ...
- php5.6 版本出现 Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version 的错误
解决方法是修改php.ini配置: ;always_populate_raw_post_data = -1 把前面的分号去掉 always_populate_raw_post_data = -1 然后 ...
随机推荐
- Spring-----7、bean实例的创建方式及依赖配置
转载自:http://blog.csdn.net/hekewangzi/article/details/45648579
- Spring-----6、Spring3.0提供的Java配置管理
转载自:http://blog.csdn.net/hekewangzi/article/details/45646279
- Ubuntu Server 安装部署 Cacti 服务器监控
本文的英文版本链接是 http://xuri.me/2013/10/20/install-the-cacti-server-monitor-on-ubuntu-server.html Cacti是一套 ...
- 如何查找ORACLE中的跟踪文件
一.跟踪文件是干什么用的? 跟踪文件中包含了大量而详细的诊断和调试信息.通过对跟踪文件的解读和分析,我们可以定位问题.分析问题和解决问题.从跟踪文件的产生的来源来看,跟踪文件又可以分为两 ...
- oracle中job定时调用存储过程的实例
使用job模拟定时从元数据表中抽取指定数据进入目标表的过程. 一.创建元数据表 --create table test_origianl create table test_original_data ...
- 全屏显示网页FULLSCREEN API
第一次看到应用 Fullscreen API 全屏显示网页,是 FaceBook 中的照片放大.作为一个比较新的 API,目前只有 Safari.Chrome 和 FireFox 三种浏览器支持该特性 ...
- JAVA编程思想——类型信息(反射)
一.反射与RTTI RTTI:这个类型必须在编译的时候已知或者存在,如果不知道对象的确切类型,RTTI可以告诉你. 反射(个人认为就是能够利用Class获取或者调用.class这个文件中的数据):当我 ...
- 常用的PHP正则表达式汇总
PHP中的常用正则表达式集锦: 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^\x00-\xf ...
- 在右键添加Cmder here选项,添加启动Cmder的快捷键
右键菜单添加“Cmder here” 打开cmder,在其中输入: cmder /register user 或 cmder /register all 即可 设置启动cmder的快捷键 右键 C ...
- C# 多线程 异步加载 窗体
C# 多线程 异步加载 窗体 分类: C#2014-05-28 16:57 1286人阅读 评论(0) 收藏 举报 异步加载 我们在使用 windowform 编程的时候,我们或许可能会越到,各种在窗 ...