欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

【搜】php升级到5.3产生问题修正积累(不断更新)

程序员文章站 2022-05-25 20:02:39
...

deprecated functions ※POSIX Regex系列 PHP 5.3.0 之后的 regex, 希望使用 PCRE 的规格, POSIX Regex 都不建议使用了(统一 Regex, 避免规格太多?). 所以下述是不建议使用的 Function (POSIX), 与建议替换成的 Function (PCRE) 列表, 详可见: PHP: Differen

deprecated functions

※ POSIX Regex系列

PHP 5.3.0 之后的 regex, 希望使用 PCRE 的规格, POSIX Regex 都不建议使用了(统一 Regex, 避免规格太多?).
所以下述是不建议使用的 Function (POSIX), 与建议替换成的 Function (PCRE) 列表, 详可见: PHP:
Differences from POSIX regex
* POSIX → PCRE
* ereg_replace() → preg_replace()
* ereg() → preg_match()
* ereg_replace() → preg_replace()
* eregi_replace() → preg_replace()

此函数为不区分大小写,替换时候改为preg_replace("/原规则/i", ...);即可
* eregi() → preg_match()
* split() → preg_split()
* spliti() → preg_split()
* sql_regcase() → No equivalent
* 需要 regex 的 split, 可用 preg_split() 代替
* 不需要 regex, 只要要快速分割固定的字串, 可用 explode() 代替. (速度会比需要 regex 的快很多)

另:

如果一定要用php5.3,请修改php.ini中下面代码

;extension=php_mbstring.dll 修改为; extension=php_mbstring.dll

;mbstring.func_overload = 0 修改为; mbstring.func_overload = 7

deprecated grammar

※ Assigning the return value of new by reference is deprecated in

解决办法:php5.3开始后,废除了php中的”=&”符号,所以要想复制,直接用=引用即可。详细如下:

1、PHP5对象复制是采用引用的方式;
2、如果不采用引用方式,则需要在复制对象时加关键字 clone;
3、如果在复制的过程中,同时要变更某些属性,则增加函数_clone();

或是屏蔽错误