拆分spliti在Php 5.3中已弃用。我怎样才能更换它们?

时间:2014-09-20 15:29:40

标签: php split php-5.4

我正在实现一个将浮点数转换为字符串的函数。

function exp2int($exp) {
    list($mantissa, $exponent) = spliti("e", $exp);
    if($exponent=='') return $exp;
    list($int, $dec) = split("\.", $mantissa);
    bcscale (abs($exponent - strlen($dec)));
    return bcmul($mantissa, bcpow("10", $exponent));
}

这是一个例子:

$n = 2.777777778e-10;
echo exp2int($n);

返回:

0.0000000002777777778

我的服务器正在运行Php 5.4,并且由于拆分 spliti 从Php 5.3开始被弃用,我收到以下消息:

Deprecated: Function spliti() is deprecated
Deprecated: Function split() is deprecated

如何在 exp2int 函数中替换这些函数(不使用@)?谢谢!

1 个答案:

答案 0 :(得分:3)

正如split()上的PHP网站所述:

  

从PHP 5.3.0开始,不推荐使用Tip split()。 preg_split()是此函数的建议替代方法。如果你不需要正则表达式的强大功能,那么使用explode()会更快,这不会产生正则表达式引擎的开销。

同样适用于spliti()

  

自PHP 5.3.0起,不推荐使用提示spliti()。带有i(PCRE_CASELESS)修饰符的preg_split()是建议的替代方法。

但请注意,explode()采用分隔符string而不是regex模式作为参数。