&引用;空分隔符“;使用PHP explode()函数时发出警告
在javascript中,&引用;空分隔符“;使用PHP explode()函数时发出警告,php,split,explode,php-7,Php,Split,Explode,Php 7,在javascript中,var myStringToArray=myString.split(“”)完全可以接受 但是在PHP中,$My\u String\u To\u Array=explode(“”,$My\u String)引发错误: 警告:explode()为空分隔符 PHP手册()解释了: 如果分隔符是空字符串(“”),explode()将返回FALSE explode(separator,string,limit) [separator]: required; [string]:
var myStringToArray=myString.split(“”)代码>完全可以接受
但是在PHP中,$My\u String\u To\u Array=explode(“”,$My\u String)代码>引发错误:
警告:explode()为空分隔符
PHP手册()解释了:
如果分隔符是空字符串(“”),explode()将返回FALSE
explode(separator,string,limit)
[separator]: required;
[string]: required;
[limit]: alternative.
那么,在当代PHP中,我应该使用什么来代替explode(“”,$My_String)
到目前为止,我可以看到的备选方案有:
split(“,$My_String)
-自PHP5.3.0以来已弃用
str\u split($My\u String)
preg_split('/',$My_String)
七年前,str_split()
应该是正确的选择
但是str_split()
是否仍在当代使用,或者我应该只看preg_split()
或者我应该看看别的东西吗?我想Stru_split是你想要的
第一个参数是必需的
explode(separator,string,limit)
[separator]: required;
[string]: required;
[limit]: alternative.
带有空格[分隔符]的分解函数没有意义
就这些(∩_∩)O ~如果处理多字节UTF-8字符串,则应使用:
$array = preg_split('//u', $My_String,-1, PREG_SPLIT_NO_EMPTY);
否则,您只需使用:
$array = str_split($My_String);
原因如下:
str_split()在处理多字节编码字符串时,将拆分为字节,而不是字符
从PHP 7.4版开始,添加了等效于str_split的mbstring,因此您现在可以使用:
$array = mb_str_split($my_string);
是否要在空格上分解?如果是,则生成一个空格?分解(“”,$string)
。如果要将字符串拆分为单个字符,可以通过执行$string[0]…$string[6]
等操作来访问该字符串。stru split
手册页上没有警告或其他警报,因此可以使用它。“那么,我应该在当代PHP中使用什么…”你能确切地告诉我们你想要实现什么吗?这是非常有效的。它没有被弃用,而且很可能永远不会被弃用。不要把它误认为是split()
,它只是explode()
的别名。它不是stru split()的替代品
。它们有不同的参数,以不同的方式工作。谢谢你,@MattJenkins。你能确认stru split()吗
仍在当代使用?2017年4月是否仍被视为最佳实践?不知道是否会被视为最佳实践,但是,我相信它完全符合您的设计要求。此外,它是一种有效且维护的方法,没有折旧警告。信息充分且全面的回答-谢谢。
$array = mb_str_split($my_string);