首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP: implode()传递的参数无效

PHP: implode()传递的参数无效
EN

Stack Overflow用户
提问于 2013-05-13 16:28:47
回答 3查看 42.8K关注 0票数 4

我使用的是Codeigniter及其验证规则--一个自定义的回调验证。无论如何,我认为这似乎与CI无关。

我使用此函数返回一个字符串…

代码语言:javascript
复制
function array_implode($a)
{
  return implode(',', $a);
}

…但是我总是收到一条消息implode():传递了无效的参数

但是var_dump()向我展示了这个:

代码语言:javascript
复制
array(2) {
  [0]=> string(10) "First item"
  [1]=> string(11) "Second item"
}

怎么啦?

EN

回答 3

Stack Overflow用户

发布于 2013-05-13 16:33:32

为什么?为什么要写一个调用std函数的函数呢?为什么不写implode(',', $array);而不是增加函数调用的开销呢?

还有:什么var_dump输出了一个数组?它是array_implode函数中的$a转储吗?为了确保$a始终是一个数组,并且您坚持保留array_implode函数,请将代码编辑为如下所示:

代码语言:javascript
复制
function array_implode(array $a)
{//type hinting: this function will only work if $a is an array
    return implode(',',$a);
}
票数 9
EN

Stack Overflow用户

发布于 2013-05-13 16:41:12

代码不应该抛出任何错误。可能有什么隐藏的东西。使用此函数找出错误:

代码语言:javascript
复制
function array_implode($a)
{
  // print detailed info if $a is not array
  if(!is_array($a)) {
    var_dump($a); // what is in $a
    var_dump(debug_backtrace()); // where exactly was it called?
    exit;
  }
  return implode(',', $a);
}
票数 7
EN

Stack Overflow用户

发布于 2013-05-13 16:50:35

您可以将$a转换为数组,以确保在使用implode时始终使用数组

代码语言:javascript
复制
function array_implode($a) {
    return implode(',', (array) $a);
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16517714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档