资讯专栏INFORMATION COLUMN

PHP-5.3向更高版本迁移之不兼容

bitkylin / 2726人阅读

PHP 5.4不兼容内容
  

熟悉

安全模式的移除(safe_mode),涉及到php.ini配置指令
安全模式开启,限制PHP中的一些内置函数的使用
代码中如果有依赖于安全模式保障安全的内容,需要调整

移除魔术引号(magic_quote),涉及到php.ini配置指令
魔术引号自动对用户提交数据转义(包括不必要转义的数据),性能低下
魔术引号的效果和使用 addslashes() 函数一样
为避免出现安全问题,任何依赖魔术引号特性的代码都需要修改
移除模式引号后,对仅需要存储到数据库中的数据进行addslashes()操作

调用时的引用传递被移除


在日期与时间扩展中,不再支持时区使用 TZ(TimeZone)环境变量设置
php.ini中强烈建议配置date.timezone
或者在程序入口脚本配置环境时,使用date_default_timezone_set()设定时区

数组转换成字符串将产生一条 E_NOTICE 级别的错误,但返回的结果仍是字符串 "Array"

现在参数名使用全局变量将会导致一个致命错误

当使用两个空数组作为参数时, array_combine() 现在返回 array() 而不是 FALSE

trait,callable,insteadof成为新的保留字,在函数和类名中不可使用

  

了解

register_globals 和 register_long_arrays php.ini 指令被移除

break 和 continue 语句不再接受可变参数

NULL 、FALSE 、或 一个空字符串被添加成一个对象的属性时将发出一条 E_WARNING 级别的错误,而不是 E_STRICT

Salsa10 和 Salsa20 哈希算法 被移除

强烈建议不要再使用 eregi()

移除的函数

  define_syslog_variables() 
  import_request_variables()  
  session_is_registered() 、 session_register() 以及 session_unregister() 
  mysqli_bind_param() 、 mysqli_bind_result() 、 mysqli_client_encoding()
  mysqli_fetch() 、 mysqli_param_count() 、 mysqli_get_metadata() 

过时的函数

mcrypt_generic_end()  
mysql_list_dbs()  

sqlite扩展被移到 pecl扩展中,不包含在PHP发行版中

PHP5.5不兼容内容
  

熟悉

原始的 MySQL 扩展 现在被废弃(不推荐使用,下版本将会移除)
当连接到数据库时会产生一个 E_DEPRECATED 错误。可使用 MySQLi 或 PDO_MySQL 扩展作为替代

  

了解

windows xp & windows server 2003支持取消。还在使用这两个环境就太out了

移除 PHP logo GUIDs组函数
php_logo_guid()
php_egg_logo_guid()
php_real_logo_guid()
zend_logo_guid()

preg_replace() 中的 /e 修饰符被标识为不推荐使用
替代方案是使用 preg_match_replace

mcrypt 中的下列函数过期(在未来版本会被移除)

mcrypt_cbc()  
mcrypt_cfb()  
mcrypt_ecb()  
mcrypt_ofb()  

intl 中的废弃
IntlDateFormatter::setTimeZoneID() 和 datefmt_set_timezone_id() 现在被废弃
可分别使用 IntlDateFormatter::setTimeZone() 方法和 datefmt_set_timezone() 函数作为替代

pack() 和 unpack() 函数的变化
添加了Z格式和perl兼容
这两个函数在二进制接口使用

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/20614.html

相关文章

  • PHP-5.3更高版本迁移之变更

    摘要:变更本部分内容不再具体区分版本号及现在使用作为默认库强烈建议使用库和在编译安装的时候,加上如下参数扩展现在需要或更高版本不再支持使用低于版本的客户端库连接更多变更请访问下面的资源上面的变更主要是函数参数和配置指令在中 PHP5.4-5.5变更 ps:本部分内容不再具体区分版本号 mysqlnd mysql mysqli及PDO_mysql现在使用mysqlnd作为默认库 ...

    Simon 评论0 收藏0
  • PHP 5.3更高版本迁移之新特性

    摘要:新特性掌握的引入,可以扩展的内容,使在某种形式上实现了多重继承,更加灵活不能被实例化示例代码需要注意的是,的继承顺序来自当前类的成员覆盖了的方法,而则覆盖了被继承的方法当多个被同一个类使用的时候,会出现方法冲突的情况,使用关键词解决示 PHP 5.4新特性 掌握 traits trait的引入,可以扩展class的内容,使class在某种形式上实现了多重继承,更加灵活 t...

    macg0406 评论0 收藏0
  • PHP-5.3更高版本迁移系列博客使用的php-excel文件类

    摘要: $this->getWorksheetTitle($title), data => $data ); } /** * Write workbook to file * * Writes the workbook in...

    Harriet666 评论0 收藏0
  • PHPer面试指南-PHP

    摘要:本书的地址篇收集了一些常见的基础进阶面试题,基础的面试题不再作答。如何实现持久化持久化,将在内存中的的状态保存到硬盘中,相当于备份数据库状态。相当于备份数据库接收到的命令,所有被写入的命令都是以的协议格式来保存的。 本书的 GitHub 地址:https://github.com/todayqq/PH... PHP 篇收集了一些常见的基础、进阶面试题,基础的面试题不再作答。 基础篇 ...

    stackvoid 评论0 收藏0
  • 虚拟机迁移会带来哪些云计算兼容性问题?

    摘要:工作人员需要注意与分区操作系统和映像格式的兼容性问题,以确保顺利迁移。企业在虚拟机迁移过程中需要检查云计算兼容性,以确保虚拟机移动到公共云时尽可能不受干扰。 将虚拟机(VM)移动到公共云时可能会出现许多兼容性问题。工作人员需要注意与分区、操作系统和映像格式的兼容性问题,以确保顺利迁移。 企业在虚拟机迁移过程中...

    honhon 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<