Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;空分隔符“;使用PHP explode()函数时发出警告_Php_Split_Explode_Php 7 - Fatal编程技术网

&引用;空分隔符“;使用PHP explode()函数时发出警告

&引用;空分隔符“;使用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]:

在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]: 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);