PHP5.2 到5.3的升级 (1)

php5.2.11+5.3.1+5.3.2 php5.2.11.tar.gz+php5.3.1.tar.gz+php5.3.2.tar.gz合集 立即下载

PHP5.3出来好久了, 之前一直没有时间来看这两者之间的差别。

 

现在5.2已经不再被sustain了, 后面应该考虑向5.3进行migration了。

 

所以来研究一下。

 

1. PHP5.3有什么改变

5.3还是保留了大部分向前兼容的。 但是还是有部分是不兼容的。

首先来看看不兼容的改变有哪些?

语法变化

  该语言新增了名称空间(namespace)和闭包(closure)增加了更多的保留字。从 PHP V5.3 开始,namespace 不再用作标识符。closure 类现在是一个保留类,但它仍然可以作为有效的标识符。

      PHP V5.3 中还增加了对 goto 语句的支持。现在,goto 是一个保留字。goto 语句在现代语言中不太常见(您也许记得在 BASIC 中如何使用 goto),但是有些情况下,goto 语句的确方便。

 

函数和方法的变化

  在 PHP V5.3 中,函数和方法没有大的变化,但还是有一些增强,以帮助解决 PHP 中的一些突出问题并提高性能。本节讨论一些较为显著的变化。

  在之前版本的 PHP 中,数组函数 atsort、natcasesort、usort、uasort、uksort、array_flip 和 array_unique 可以以参数形式传递对象而不是数组。然后,这些函数将对象的属性当做数组的键和值。PHP V5.3 中不再支持这一点,所以需要首先将对象转换成数组。

      在 Windows 上,有些函数之前在 PHP 中不受支持,现在在 PHP V5.3 中获得支持。例如,getopt() 函数用于解析从命令行调用 PHP 脚本时使用的选项。用于编码和解码 Internet 地址的 inet_ntop() 和 inet_pton() 函数,现在也可以在 Windows® 上使用。还有一些数学函数,例如 asinh()、acosh()、atanh()、log1p() 和 expm1(),现在在 Windows 上也受支持。

 

扩展的变化

 

PHP Extension C Library(PECL)一直都是 PHP 中的新扩展的来源地。当一个扩展已经成熟和稳定,并且被认为可以成为核心发行版中一个有用的功能,那么它通常在重大的版本变更时被添加进来。根据这条规则,从 PHP V5.3 开始,下面的扩展会成为核心 PHP 发行版中的一部分。

  FileInfo提供帮助检测文件的内容类型和编码的函数,这些函数通过查看文件中的某些魔术字节字符序列进行检测。intlInternational Components for Unicode(ICU)库的一个包装器,提供用于 unicode 和全球化支持的函数。Phar第 4 部分 中讨论过的一个 PHP 归档工具。mysqlnd用于 MySQL 数据库访问的一个本地 PHP 驱动程序,是早期利用 libmysql 库的 MySQL 和 MySQLi 扩展的替代物。SQLite3用于使用 SQLite V3 数据库的一个库。

  当一个扩展不再受到积极的维护,或者被认为不值得随核心 PHP 发行版一起发行时,它通常被转移到 PECL。在 PHP V5.3 的改造过程中,下面这些扩展被踢出核心 PHP 发行版,而放在 PECL 中进行维护。

  ncurses对 curses 的模拟,用于在命令行显示图形化的输出。fpdf用于在 PDF 文档中构建和使用表单和表单数据。dbase提供读写 dbase 兼容文件的支持。fbsql支持 Frontbase 数据库服务器上的数据库访问。ming一个开源库,用于创建 Flash 4 动画。

  Sybase 扩展已经被完全移除,取而代之的是 sybase_ct 扩展。sybase_ct 扩展与前者完全兼容,应该是一个简易替代者(drop-in replacement)。这个更新的功能将使用 Sybase client 库,需要将这些库安装在 Web 服务器上。

 

构建的变化

PHP V5.3 着重改善了构建过程,因此更容易在所有平台上构建 PHP。为了维护 PHP 构建之间的一致性,并提供一组可靠的组件,在构建中不再禁用 PCRE、Reflection 和 SPL 扩展。现在,可以构建可分发的 PHP 应用程序,它们将使用这些扩展并且保证这些扩展是可用的。

  一个新的团队在去年接管了 PHP Windows 构建。这个小组将为 Windows 上的用户提供一些改进。新的构建将以 586 架构(Intel® Pentium® 或更高型号)为目标,并要求 Windows 2000/XP 或更高版本,另外去掉了对 Windows 98/NT 及之前版本的支持。将构建使用 Microsoft® Visual Studio® 2008 构建的 PHP 构建和针对 x86-64 架构的构建。当和 Microsoft IIS Web 服务器上的 FastCGI 或者和 Apache 一起使用时,在使用相同的编译器和架构进行构建的情况下,它们可以提供更高的性能。Windows 安装程序也将有所改进,以便更好地在 Microsoft IIS Web 服务器上配置 PHP。

 

.ini 的变化

  PHP 的一个重要特性是,可以使用 .ini 文件配置它的行为。在 PHP V5.3 中,与这个文件有关的一些有问题的指令已经被删除,例如 zend.ze1_compatibility_mode。现在,在使用这个文件时,灵活性有了巨大的提高。

  对于 php.ini 文件有两个重大的改进:

  在 php.ini 文件中可以使用变量。这对于减少该文件的冗余非常方便,必要时更新文件也更加方便。

      和用 Apache 配置文件进行设置一样,可以进行 per-directory 和 per-site PHP ini 设置。这样做的优点是,在所有不同的可运行 PHP 的 SAPI 中,语法都是一致的。

 

放弃的特性

  PHP V5.3 开始正式放弃一些较旧的函数,将来版本的 PHP 中将不再提供它们。当使用这些函数时,会遇到 E_DEPRECATED 错误。以下函数在 PHP V5.3 中被遗弃:

  tick(declare(ticks=N) 和 register_tick_function()),之前用于在 declare() 块中当解析器每执行 n 条语句时就进行一个函数调用。它们将被废除,因为它们的函数中有很多的中断,而且该特性不大常用。

  define_syslog_variables(),该函数初始化所有与 syslog 相关的变量。该函数不是必需的,因为它定义的常量已经被全局定义。废除这个函数调用应该是有必要的。

  ereg 正则表达式函数。建议使用 PCRE 正则表达式函数替代,因为它们更快,并且与其他语言和应用程序中使用的正则表达式更加一致。对 ereg 函数的支持将被废除,以使 PHP 可以标准化地使用一个正则表达式引擎。

PHP版本的选择5.2.17 5.3.27 5.3.28 5.4 5.5兼容性问题分析 大家在选择PHP版本时一定很困惑,有这么多版本究竟选那个呢,这篇文章是麦子同学整理的,大家可以参考下 立即下载

相关推荐

ESP32 开发实战:VS Code 头文件波浪线及编译错误的终极解决方案

本文针对ESP32开发者在VS Code中常见的头文件红色波浪线和fatal error编译错误,提供了终极解决方案。通过详细讲解如何配置c_cpp_properties.json文件来修复编辑器智能提示,以及如何修改CMakeLists.txt来修正编译器路径,帮助开发者彻底解决环境配置问题,提升开发效率。

prometheus9mon的博客 294

PHP 自 5.2 到 5.6 中新增的功能详解[转]

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34239169的博客 658

K8S 1.28.2 + Calico 3.27.3 保姆级安装避坑指南:解决节点NotReady问题

本文提供了一份详细的Kubernetes 1.28.2与Calico 3.27.3集群部署指南,重点解决节点NotReady这一常见问题。通过版本兼容性分析、精细化环境配置、kubeadm初始化参数详解及Calico Operator部署,手把手指导用户避开网络插件配置陷阱,确保集群从NotReady状态恢复健康并稳定运行。

weixin_28835583的博客 394

php5.2+到5.3,php从5.2.x升级到5.3.2.出来问题及解决方案

php5.3 不支持 session_register() 此函数已启用的解决方法php从5.2.x升级到5.3.2.出来问题了。有些原来能用的程序报错了。报错内容是Deprecated:Functionsession_register()isdeprecated查了一下是5.3这个session_register就不让用了,降回去?不爽。搜了一把,有个解决方法是写一个函数复制代码 代码如...

weixin_33817140的博客 260

别再让 AI 瞎写 SAP 代码了!这套 Claude Code Skill 的验证机制才是关键

本文深入解析了专为SAP CAP开发设计的AI辅助工具sap-cap-capire的技术架构。该工具采用四层设计:协议层集成MCP和LSP实现实时模型访问与语法检查;智能层通过4个专业化Agent(数据建模、服务开发等)分工协作;验证层确保代码质量;知识层存储文档模板。这种工程化设计解决了通用AI在CAP开发中面临的上下文不足、专业性缺失和代码质量保证等核心问题,通过本地化服务和实时反馈机制显著提升了开发效率。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 882

AI游戏制作07——波次计时器,敌人按波次生成

AI游戏制作07——波次计时器,敌人按波次生成

qq_40572023的博客 47

php5.3 pear,php-5.3 下安装pear 和 pecl

环境描述:服务器php安装好之后,bin目录下没有pecl、pear等命令,从而导致安装memcache、apc等php扩展比较麻烦。一、安装pear、pecl1、下载go-pear[root@yf_web_115 bin]# curl -o go-pear.php http://pear.php.net/go-pear.phar% Total % Received % Xferd Ave...

weixin_30303839的博客 443

Cadence OrCAD Capture原理图中为功能模块分配ROOM的方法

本文详解介绍原理图设计阶段为原理图模块分配ROOM的方法。

fydar的博客 1346

php5.0升级到5.3,php升级到5.3.2后的处理

PHP: 5.3.2-1ubuntu4 with Suhosin-Patch (cli)cacti: Version 0.8.7eubuntu: server 10.04 32bitubuntu server 从8.04升级到10.04后,php也升级到5.3.2,结果问题就来了。前3个是cacti的问题1.登录页面提示:Deprecated: Function ereg_replace() is...

weixin_33835122的博客 155

1、VMware vSphere 全面指南:从入门到精通

本文全面介绍了VMware vSphere从入门到精通的完整知识体系,涵盖基础概念、环境适配、部署规划、安装配置、网络与存储准备、虚拟机创建与管理、资源组织、事件监控、巡检流程、主机配置文件管理、资源池优化、高可用性与容错应用,以及故障排除方法。结合实用工具和部署技巧,帮助读者系统掌握vSphere的核心功能与运维实践,提升虚拟化环境的稳定性与管理效率。

pz890123的博客 95

RK3588开发笔记-5G模块(SIM8200、广和通FM160、移远RM500U)调试笔记

RK3588 CPU提供了丰富的外设接口,本文主要介绍通过usb3.0接口驱动5G模块来实现5g无线数据传输功能。在物联网和边缘计算领域,5G网络支持的高速率、低延时连接为应用带来了更多可能性。RK3588作为一款高性能SoC,适合用于5G联网应用。SIM8200广和通FM160和移远RM500U。在RK3588上调试5G模块可以为设备提供稳定的高速联网能力。本文介绍了如何配置和调试SIM8200、广和通FM160和移远RM500U模块,通过AT指令和QMI/MBIM工具实现5G数据连接。

flypig has a dream! 2670

php5.2 、5.3、5.4、5.5、5.6 各个版本升级不兼容点

最近工作中将php5.2升级到php5.6,在升级的过程中,需要对php各个版本之间的不兼容的问题进行讨论和测试论证。依据php版本不兼容 分支说明 , 分别在多个版本之间进行了测试,分享如下: php5.3 不兼容5.2 1.在 PHP 5.3.x 的所有绑定扩展中应用了新的内部参数解析API, 当给函数传递了不兼容的参数时将返回 NULL. 但有一些例外,比如函数 get_clas

gkingzheng的专栏 2万+

22、硬件工程师笔试面试——电机(2025版本)

例如,B级绝缘的电机可以承受的最高温度为130℃,而H级绝缘的电机可以承受高达180℃的温度。同时,也要考虑电机的成本和控制系统的复杂性。电机的选择取决于其应用的具体要求,包括所需的功率、速度、扭矩、效率、成本和工作环境等。根据电动机保护配置原则,为电机配置适当的保护,如过负荷保护、缺相保护、逆相保护、接地漏电保护、堵转保护、相不平衡保护、短路保护、过电压保护、低电压保护、过热保护等。根据安培环路定理,电流和磁场的相互作用会在电机的转子上产生力,这些力作用于转子上,使其绕轴旋转,从而产生转矩。

XU157303764的博客 3539

Centos5.4(webmin)中Yum升级mysql5.1和php5.2(禁止php5.3)

<br /><br />centos5.3,centos5.4安装webmin默认的是 mysql 5.0,php5.1 我需要升级到mysql5.1和php5.2(禁止php5.3),怎么办?<br /><br />给yum安装rpmforge:<br />http://wiki.centos.org/AdditionalResources/Repositories/RPMForge<br /><br />yum list mysql php 发现都是最新版本了,看来标准的yum源没有更新<br /><b

doupoo的专栏 1343

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

分享:将WDCP中的PHP5.2 1.7升级到PHP 5.3的方法

将wdcp中php 5.2.17升级到php 5.3方法: 1、首先下载wdcp php5.3升级脚本 wget http://down.wdlinux.cn/in/php_up53.sh 2、进行安装 sh php_up53.sh 3、看到"php update is OK"提示 表示php5.3升级完成 zend opt从php5.3开始已不再支持,可以使用Zend Gu...

dijiongyu7665的博客 124

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Centos5.4中Yum升级mysql5.1和php5.2(禁止php5.3)

找到一个yum源,有php5.2,方法如下: http://www.webtatic.com/blog/2009/06/php-530-on-centos-5/ rpm --import http://repo.webtatic.com/yum/RPM-GPG-KEY-webtatic-andy wget -P /etc/yum.repos.d/ http://repo.webta...

diaozhi0946的博客 146

WDCP面板管理升级PHP、MYSQL5.5方法以及错误解决方法

目前我们安装WDCP管理面板默认PHP版本是5.2.17,MYSQL版本是5.1,有些程序可能需要更高的版本,我们需要在原有的基础上升级。正好有一个客户需要升级MYSQL至5.5版本,老蒋把整个升级的过程分享在部落中,以便以后需要的时候直接复制使用,也方便有需要的其他用户朋友。 第一、升级PHP5.2.17至5.3.17 这个升级我们可以参考"WDCP面板环境PHP5.3快速安装pdo

vanchan博客 1284

2.7.3 ecshop php7.1_ecshop2.7.3從PHP5升級到PHP7.3修改方法(20200629更新)

php5.2 升級到 php5.4修改改前記得備份喔!1、Strict standards: Only variables should be passed by reference in **********includes\lib_main.php on line 1316$ext = end(explode('.', $tmp));改成$tmp_ext = explode('.', $tmp...

weixin_39790760的博客 610

PHPnow-1.5.6中升级php-5.2.14-Win32到php-5.3.5

今天在用thinkPHP访问项目是提示require PHP > 5.3.0 !,然后看了看我的php环境是php-5.2.14-Win32。然后开始查找资料升级php,现总结如下: 1.下载PHP5.3.5。http://download.csdn.net/detail/yfz792178428/8260333 2.将下载的解压至phpnow的安装目录,重命名为“php5.3.5”。 3.

yfz792178428的专栏 3947

CodeIgniter 1.7.1 on PHP 5.3

如果你的CodeIgniter的版本小于1.7.2,那么快快去升级到Codeigniter 1.7.2吧。如果你不升级,你的程序将不能在PHP5.3下运行。错误信息如下图原因如下:1. PHP5.3删除了Magic Quotes 相关的函数2. Deprecated features: Assigning the return value of new by reference is now

漫漫人生路 1091

Centos5.4中Yum升级mysql5.1和php5.2(禁止php5.3)---(转)

给yum安装rpmforge: http://wiki.centos.org/AdditionalResources/Repositories/RPMForge yum list mysql php 发现都是最新版本...

chuilin9373的博客 196

从PHP5.2.6升级PHP5.3.1,验证码程序出错了。

源程序如下:   @header("Content-Type:image/png"); session_start(); $_SESSION['authnum'] = ''; $str = "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M...

禅心 200

php5.2.3 zend3,CentOS 升级PHP5.2 ZendOptimizer3.3

CentOS 5.3,CentOS 5.4安装webmin默认的是 mysql 5.0,php5.1 我需要升级到mysql5.1和php5.2(禁止php5.3),怎么办?给yum安装rpmforge:yum list mysql php 发现都是最新版本了,看来标准的yum源没有更新发现可以升级到 mysql 5.1.44-1.el5.remiyum –enablerepo=remi upda...

weixin_29000891的博客 228

Linux 下 PHP7.2.x 编译升级至 PHP 7.3.x

1. 升级安装 libzip 依赖至 1.3.2 之前通过 yum 安装的 libzip 的版本太低,需要升级一下 libzip 版本(否则安装 PHP 的时候会报错) 下载 libzip 1.3.2 足矣(官网最新 libzip 1.5.2,但是需要升级 cmake 到 3.0.2 以上版本,太折腾了) cd /usr/local/src wget https://libzip.org/do...

业余敲代码 3315

完整的升级apache2.4.1 php5.3.10

先把httpd的服务关了。。  ./configure --prefix=/usr/local/apache-2.4 --enable-so --enable-modules=all --enable-rewrite --enable-deflate --enable-socache-memcache --enable-buffer --enable-proxy-fcgi --ena

2x 青年,欢乐多。 1758

LNMP 1.2/1.3/1.5/1.6或更高版本升级Nginx、MySQL/MariaDB、PHP教程

一般情况下不建议对生产环境进行升级,升级开始后会停止LNMP相关服务。 本文仅适用于LNMP1.2、1.3、1.4、1.5及以后的更高版本! 在LNMP目前LNMP v1.2/1.3/1.4/1.5或更高版本中已经包含了Nginx、MySQL/MariaDB、PHP、PHPMyAdmin的升级脚本,可以帮助搭建对环境中的程序进行升级。(注意:以下操作均必须在lnmp安装包压缩包解压后的目录里运行) 一、Nginx升级脚本 执行:./upgrade.sh nginx 按提示输入版本号后回车(访问 http:/

qq_38883889的博客 492
上一篇: 事务日志在运行 SQL Server 的计算机上意外增大或充满
下一篇: 正则表达式的学习
php_boy
博客等级 码龄20年 11粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值