explode php 报错,PHP函数explode和split的区别
explode和split在php中都是可以通过特定字符把字符串转换成数组哦,那么explode和split既然是一样的为什么会有两个函数呢,那么explode和split的区别在哪里呢,我们来看看。
前言
之所以做这个,是因为这两个函数的作用很像,都是把字符串转换成数组。
explode
从下面的例子可以看出,生成的数组是有对应的顺序的。
代码如下 | 复制代码 |
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6"; $pieces = explode(" ", $pizza); echo $pieces[0]; // piece1 echo $pieces[1]; // piece2 // 示例 2 $data = "foo:*:1023:1000::/home/foo:/bin/sh"; list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data); echo $user; // foo echo $pass; // * |
注意的是,如果第一个参数为空字符串的话,就会产生Warning。
代码如下 | 复制代码 |
var_dump( explode('','asdasd') ); //Warning: explode(): Empty delimiter in /tmp/e80c9663-e392-4f81-8347-35726052678f/code on line 3 //bool(false) split |
(PHP 4, PHP 5)
split — 用正则表达式将字符串分割到数组中
注意的是上面并没有PHP 7,也就是说split函数并不支持PHP 7.
代码如下 | 复制代码 |
$date = "04/30/1973"; list($month, $day, $year) = split ('[/.-]', $date); echo "Month: $month; Day: $day; Year: $year //PHP 7 下的报错 Fatal error: Uncaught Error: Call to undefined function split() 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 //PHP 5.6 下返回正常 Month: 04; Day: 30; Year: 1973 |
split的第一个参数为正则表达式,也就是说,如果想要匹配特殊字符,需要转义一下。
代码如下 | 复制代码 |
$arr='2016\8\11'; $rearr = split ('[/\]', $arr); var_dump($rearr) /* array(3) { [0]=> string(4) "2016" [1]=> string(1) "8" [2]=> string(2) "11" } */ |
也正是因为要使用正则表达式 pattern 的语法,所以搜索的速度不会很快。
preg_split() 函数使用了 Perl 兼容正则表达式语法,通常是比 split() 更快的替代方案。如果不需要正则表达式的威力,则使用 explode() 更快,这样就不会招致正则表达式引擎的浪费
可能效率的原因导致了PHP 7 中直接放弃了这个函数吧。
explode php 报错,PHP函数explode和split的区别相关推荐
- 关于vs在.cpp提取头文件运行的时候一直报错“xx函数主体重定义”
.....本来把主函数的一些封装的函数放到头文件里面的,结果编译运行在主函数调用的时候头文件一直报错"xxxx函数"已经有主体, cpp文件就说我调用的头文件的函数名是未识别的标识 ...
- explode php 报错,ecshop在php5.4下报错怎么办
ecshop在php5.4下报错的解决办法:1.打开"cls_template"文件,并修改"$tag_sel=array_shift(explode(' ',$tag) ...
- MATLAB2020a报错:函数或变量 ‘svmtrain‘ 无法识别。
版权声明:转载请注明作者(独孤尚良dugushangliang)出处:https://blog.csdn.net/dugushangliang/article/details/108594259 遇到 ...
- java drawimage报错,drawImage函数怎么用?
drawImage函数怎么用? 大家好.我是新手哦!我准备学java,但是最近有个问题一直让我很郁闷.想请教一下各位前辈. 在绘画图片(应用drawImage函数),我是怎么样也绘画不出,编译运行都没 ...
- vue 外部方法调用内部_vue函数内部调用外部函数,报错外部函数不是函数
zeroFill (num,len,radix) { let str = num.toString(radix || 10); while (str.length < len) { str = ...
- php使用hset报错,redis中set和hset的区别和使用场景
下面由redis教程栏目给大家介绍redis中set和hset的区别和使用场景,希望对需要的朋友有所帮助! redis中存数据时,到底什么时候用 hset 相比于 set 存数据时又有什么不一样? s ...
- Hive SQL 中ARRAY或MAP类型数据处理:lateral view explode()/posexplode()——行转列函数
前言:在对表数据进行批量处理过程中,常常碰上某个字段是一个array或者map形式的字段,一列数据的该字段信息同时存在多个值,当我们需要取出该数组中的每一个值实现一一对应关系的时候,可以考虑使用lat ...
- Pikachu实验过程1(函数报错的信息)
一.基于函数报错的信息获取 1.常用报错函数updatexml().extractvalue().floor() 2.(select/insert/update/delete) 技术思路: 在MYSQ ...
- Unity查安卓Native Crash的方法,定位SO报错函数
这边需要用到两个工具Il2CppDumper和IDA_Pro,网上可以下到对应的软件 日志分析 下面是出错的日志 01-17 18:03:54.146267 20882 21037 E Android ...
最新文章
- 如何反转 Python 中的字符串
- error while loading shared libraries:libmysqlclient.so.18 错误
- C语言内存/指针相关
- SQL Server 2005远程连接连不上的解决办法收藏 Microsoft给的方法
- 在写代码过程中遇到的问题,以及当时的解决方法(如实记录)
- 【C语言】成绩统计(结构)
- python什么是堆什么是栈_python中堆和栈_Python小知识00002
- hdu3949(线性基,求第k小的异或和
- 从零开始学 Web 之 JS 高级(二)原型链,原型的继承
- Median(查找中位数)
- TensorFlow案例---概率学中的逆概率
- MF,PMF算法比较
- mysql学习记录_秦路天善智能Mysql学习笔记
- mui赋值_mui input用法
- 龙迅LT6711|CS5801替代LT6711|HDMI转DP转换器芯片设计方案
- 链表实现c语言通讯录管理系统,C++链表实现通讯录管理系统
- 苹果笔记本上网很慢怎么回事?macbook无线上网慢的解决方法
- 【ONTAK2015】【BZOJ4298】Bajtocja
- 小白用python语言做自动化起步篇3 IF条件语句 记法:如果条件,否则
- Ubuntu 13.04下安装QQ2012