从 PHP 4 移植到 PHP 5 网站程序哪些需要修改.docx 立即下载
2025-08-15
约4.7千字
约16页
0
15KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

从 PHP 4 移植到 PHP 5 网站程序哪些需要修改.docx

从PHP4移植到PHP5网站程序哪些需要修改.docx

预览

免费试读已结束,剩余 11 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

从PHP4移植到PHP5网站程序哪些需要修改

	尽管大部分PHP4的代码应该不用修改就能运行,还是应该留意以下不向下兼容的改变,就跟随百分网小编一起去了解下吧,想了解更多相关信息请持续关注我们应届毕业生考试网!	■有了一些新关键字。	■strrpos()和strripos()如今使用整个字符串作为needle。	■非法使用字符串偏移量会导致E_ERROR而不是E_WARNING。一个非法使用的例子:$str='abc';unset($str[0]);.	■array_merge()被改成只接受数组。如果传递入非数组变量,对每个此类参数都会发出一条E_WARNING信息。要小心因为你的代码有可能疯狂发出E_WARNING。	■PATH_TRANSLATED服务器变量在Apache2SAPI中不再暗中设定,这和PHP4中的情形相反,如果Apache没产生此值则其被设为和SCRIPT_FILENAME服务器变量一样的值。此修改是为了遵守?CGI规范。更多信息见?bug#23610,并参考手册中$_SERVER['PATH_TRANSLATED']的说明。此问题也影响到PHP>=4.3.2的版本。	■Tokenizer扩展不再定义T_ML_COMMENT常量。如果把error_reporting设为E_ALL,PHP将产生一条消息。尽管T_ML_COMMENT从来都没用到过,还是在PHP4中定义了。在PHP4和PHP5中//和/**/都被解析为T_COMMENT常量。但是PHPDoc风格的注释/***/,自PHP5开始被PHP解析,被识别为T_DOC_COMMENT。	■如果variables_order包括“S”,$_SERVER应该带有argc和argv被产生。如果用户特别配制系统不创建$_SERVER,那此变量当然就不存在了。改变的地方是不管variables_order怎么设定,在CLI版本中argc和argv总是可用的。本来CLI版不是总会产生全局变量$argc和$argv的。	■没有属性的对象不再被当成“empty”。	■有些情况下类必须在使用前被定义。这仅在使用了一些PHP5的新特性(例如interfaces)的时候发生。其它情况下行为都没变。	■get_class(),get_parent_class()和get_class_methods()如今返回的类/方法名和定义时的名字一致(区分大小写),对于依赖以前行为(类/方法名总是返回小写的)的老脚本可能产生问题。一个可能的解决方法是在脚本中搜索所有这些函数并使用strtolower()。区分大小写的改变也适用于魔术常量__CLASS__,__METHOD__和__FUNCTION__。其值都会严格按照定义时的名字返回(区分大小写)。	■ip2long()在传递入一个非法IP作为参数时返回FALSE,不再是-1。	■如果有函数定义在包含文件中,则这些函数可以在主文件中使用而与是否在return()指令之前还是之后无关。如果文件被包含两次,PHP5会发出致命错误,因为函数已经被定义,而PHP4不管这个。因此推荐使用include_once()而不要去检查文件是否已被包含以及在包含文件中有条件返回。	■include_once()和require_once()在Windows下先将路径规格化,因此包含A.php和a.php只会把文件包含一次。	Example#1strrpos()和strripos()如今用整个字符串作为needle		var_dump(strrpos('ABCDEF','DEF'));//int(3)	var_dump(strrpos('ABCDEF','DAF'));//bool(false)	?>	Example#2没有属性的对象不再被当成“empty”		classtest{}	$t=newtest();	var_dump(empty($t));//echobool(false)	if($t){	//Willbeexecuted	}	?>	Example#3有些情况下类必须在使用之前定义		//workswithnoerrors:	$a=newa();	classa{	}	//throwsanerror:	$a=newb();	interfacec{	}	classbimplementsc{	}	?>	PHP5里的新函数。下面是列表:	Arrays:	■array_combine()-用一个数组作为键名,另一个数组作为值创建一个新数组	■array_diff_uassoc()-计算数组的差别,并用用户提供的回调函数作附加的索引检查	■array_udiff()-用回调函数比较数据来计算数组的差别	■array_udiff_assoc()-计算数组的差
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

从 PHP 4 移植到 PHP 5 网站程序哪些需要修改

文档大小:15KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用