PHP 的一段代码,老哥们看看为什么会出现这个样子

2018-11-20 15:03:29 +08:00
 cc959798
        foreach ($packagetray as $tray) {
                        $bIds = explode(',', $tray['box_ids']);
                        $tmp = array_intersect($bIds, $boxsId);
                        if (!empty($tmp)) {
                            $tray['box_ids']=$bIds;
                            $skuTrays[] = $tray;
                        }
                    }

会报这个错误:explode() expects parameter 2 to be string, array given 大佬这是为什么

2917 次点击
所在节点    PHP
14 条回复
xnode
2018-11-20 15:11:06 +08:00
字面意思 就是 expects parameter 2 to be string
$tray['box_ids']必须是字符串参数
atroy
2018-11-20 15:11:54 +08:00
$tray['box_ids'] 这个要求是字符串,你给的是数组。
Donne
2018-11-20 15:13:07 +08:00
用 implode 倒是可以
wjfz
2018-11-20 15:13:16 +08:00
作为一个两年半的 PHPer,这个报错都看不懂是怎么拿到 Mi 和 DD 的 offer 的……
jowan
2018-11-20 15:15:57 +08:00
好想抛出鸟哥语录
runnerlee
2018-11-20 15:18:44 +08:00
expects parameter 2 to be string, array given 大概意思就是第二个参数应该是 string, 而实际传入了 array.

手册: http://php.net/manual/zh/function.explode.php

explode 官网文档是: 使用一个字符串分割另一个字符串. 那么第二个参数就必须是字符串.
jiehuangwei
2018-11-20 15:23:14 +08:00
这是来骗点击的吧
WuwuGin
2018-11-20 15:27:57 +08:00
又来黑 PHP 了。
cc959798
2018-11-20 15:28:39 +08:00
@atroy 抱歉误会啦,$tray['box_ids']本来就是 string,我忘记说了抱歉,这个报错还是看的懂的
cc959798
2018-11-20 15:28:51 +08:00
@wjfz @atroy 抱歉误会啦,$tray['box_ids']本来就是 string,我忘记说了抱歉,这个报错还是看的懂的
cc959798
2018-11-20 15:29:37 +08:00
@xnode @atroy 抱歉误会啦,$tray['box_ids']本来就是 string,我忘记说了抱歉,这个报错还是看的懂的
cc959798
2018-11-20 15:30:23 +08:00
算了,我重新发一个吧
xnode
2018-11-20 17:18:09 +08:00
贴出完整的代码看看
AngryPanda
2018-11-20 17:42:20 +08:00
然而计算机提示 array given,你俩必然有一个是错的,你觉得是谁呢?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/509623

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX