php函数解析,字符串拆分函数join/implode/split/explode
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
字符串拆分是大家写php
程序的时候,经常使用到的。很久之前,苏南大叔喜欢使用split()
和join()
。后来,split()
函数莫名其妙的被explode()
函数给取代了。与时俱进之后,发现join()
函数,其实也有个对应的implode()
函数。这就是本文的写作初衷了。
本文测试环境:win10
,php@7.3.4nts
。
字符串分割
至今也想不明白,非常好用的split()
,咋就变成了explode()
。既然时代抛弃了split()
,那么就让他飘过吧。
explode ( string $delimiter , string $string [, int $limit ] ) : array
范例如下:
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *
字符串合并
苏南大叔日常是使用join()
函数的,后来根据官方说明,原来join()
是implode()
函数的别名。
implode ( string $glue , array $pieces ) : string
$arr = array('Hello','World!','Beautiful','Day!');
echo join(" ",$arr); //Hello World! Beautiful Day!
$array = array('lastname', 'email', 'phone');
echo implode(",", $array); // lastname,email,phone
特别提示
这里有个非常有意思的罕见小知识,implode()
的两个参数可以互换,得到的将会是同样的结果。而explode()
函数,却并不能做到同样的事情,两个参数并不能互换。
$array = array('lastname', 'email', 'phone');
echo implode(",", $array); // lastname,email,phone
echo implode($array,","); // lastname,email,phone
// Deprecated: implode(): Passing glue string after array is deprecated.
$str ="lastname,email,phone";
var_dump(explode(",",$str)); // ["lastname","email","phone"]
var_dump(explode($str,",")); // [","]
在这个例子中,可以得出下面的结论:
join()
等于implode()
,用于合并字符串,数组变字符串。split()
等于explode()
,用于分割字符串,字符串变数组。- 推荐使用的是:
implode()
和explode()
。 - 推荐的参数顺序是:先
$glue
后$array
。 - 合并字符串的时候,如果先
$array
后$glue
的话,会得到Deprecated
警告信息。 - 分割字符串的时候,如果先
$array
后$glue
的话,会得到错误的答案。
相关链接
- https://newsn.net/say/php-json-function.html
- https://newsn.net/say/php-file_get_contents.html
- https://newsn.net/say/php-file_put_contents.html
总结
一些函数,平时用着用着,就没多想过。结果看看文档,还能看出来亲戚关系来。真是很有意思啊。对吧?
更多php
函数分析,请参考苏南大叔的博客:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。