主题中打算使用split 分割字符串,结果报错:Uncaught Error: Call to undefined
function
split() in
原因:PHP 7 中已经放弃了这个函数。
查看文档:split
— 用正则表达式将字符串分割到数组中
注意的是上面并没有PHP 7,也就是说split函数并不支持PHP 7.
$date = "04/30/1973"; list($month, $day, $year) = <a href="https://www.codebye.com/tag/split" title="查看更多关于split的文章" target="_blank">split</a> ('[/.-]', $date); echo "Month: $month; Day: $day; Year: $year \n"; //<a href="https://www.codebye.com/tag/php" title="查看更多关于PHP的文章" target="_blank">PHP</a> 7 下的报错 Fatal error: Uncaught Error: Call to undefined function <a href="https://www.codebye.com/tag/split" title="查看更多关于split的文章" target="_blank">split</a>() in /tmp/4d38c290-b4cb-43f5-846a-9fa90784a090/code:4 Stack trace: #0 {main} thrown in /tmp/4d38c290-b4cb-43f5-846a-9fa90784a090/code on line 4 //<a href="https://www.codebye.com/tag/php" title="查看更多关于PHP的文章" target="_blank">PHP</a> 5.6 下返回正常 Month: 04; Day: 30; Year: 1973
split的第一个参数为正则表达式,也就是说,如果想要匹配特殊字符,需要转义一下。
也正是因为要使用正则表达式 pattern 的语法,所以搜索的速度不会很快。
preg_split() 函数使用了 Perl 兼容正则表达式语法,通常是比 split() 更快的替代方案。如果不需要正则表达式的威力,则使用 explode() 更快,这样就不会招致正则表达式引擎的浪费
可能效率的原因导致了PHP 7 中直接放弃了这个函数吧。