php 开发者模式,PHP5.3开发者模式

PHP开发者模式

最近升级到php5.36 最新版本运行,总是会很多 “Fatal Error” 或 “Notice” 错误,后来发现Notice 是因为 php.ini 里在development模式下定义error_reporting = E_ALL | E_STRICT, 在此模式下php解释器检查语法比较严格,如果想忽略的话可以改为error_reporting  =  E_ALL & ~E_NOTICE 来跳过Notice级别的警告。

而deprecate的error警告,提示我们的PHP程序要与时俱进的向着最新的编码要求看齐,这样在以后升级PHP版本时才不会带来很多不可预测的错误,编码也更加规范。

php升级为5.3后,程序会报 Function split() is deprecated 的错误。

这是因为种种原因(主要是关于正则的原因,具体见后),split这个函数在新版本不支持了。

在php中,再使用deprecated的函数会报错,必须改掉。(java里deprecated的函数只是给警告,还可以继续用)

改为什么呢? 看第一个参数,如果第一个参数不是正则表达式,split改为 explode;如果是正则表达式,split改为preg_split。

explode会比以前快很多,因为以前要考虑正则,explode不考虑正则。

————-

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()

* eregi_replace() → preg_replace()

* eregi() → preg_match()

* split() → preg_split()

* spliti() → preg_split()

* sql_regcase() → No equivalent

* 需要 regex 的 split, 可用 preg_split() 代替

* 不需要 regex, 只要要快速分割固定的字串, 可用 explode() 代替. (速度會比需要 regex 的快很多)

常见的警告:

Function split() is deprecated 的解决办法

Function ereg() is deprecated 的解决办法

Function eregi() is deprecated 的解决办法

Function ereg_replace() is deprecated 的解决办法

Notice:php Undefined offset: 0 in 行号

Notice:php Undefined index “”: 0 in 行号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值