警告:explode()期望参数2是字符串,给定数组

时间:2013-01-01 22:51:23

标签: php arrays explode

我试图使用脚本。当我去使用它时,我收到以下错误:

  

警告:explode()期望参数2为string,第16行的/myred/include/functions.php中给出的数组

     

警告:in_array()期望参数2为数组,在第17行的/myred/include/functions.php中给出为null

现在,下面是functions.php的第16行和第17行。任何人都知道它有什么问题吗?

$reserved = explode("--",$reserved);
if (in_array("$dname", $reserved)) {
    $errormsg .= "$text_17<br>";
}
return $errormsg;

供参考,这是我正在使用的脚本:http://www.milliscripts.at/downloads/myred_14_mysql_5.zip

谢谢!

2 个答案:

答案 0 :(得分:2)

很简单,在第16行,你试图爆炸数组,查看explode的php手册,它会按你指定的任何分隔符拆分字符串。

由于第16行上的$reserved失败,第17行也因为$reserved未正确设置而失败。

发布更多代码,我们需要查看首次声明$reserved的位置。

答案 1 :(得分:2)

这一行是造成你困境的原因:

$reserved = explode("--",$reserved);

从错误消息中可以看出$reserved已经是一个数组。我要猜测它,并说初始$reserved数组的每个元素都是包含要分割的"--"的字符串。

如果这个假设是正确的,您需要使用$reservedimplode()转换为字符串:

$reserved = explode("--", implode($reserved));

这将解决错误,并可能为您提供所需的结果。