警告:array_merge():参数 #1 在处理两个 $_POST 时不是数组


Warning: array_merge(): Argument #1 is not an array, when processing two $_POST

我收到以下错误警告:array_merge():处理$_POST['cpl']时参数 #1 不是数组,尽管$_POST['add']工作正常

if (is_array($_POST['add'])) {
    foreach ($_POST['add'] as $key => $value) $_POST['add'][$key] = mysql_real_escape_string($value);
    $en = array_merge($en, $_POST['add']);
}
if (is_array($_POST['cpl'])) {
    foreach ($_POST['cpl'] as $key => $value) $_POST['cpl'][$key] = mysql_real_escape_string($value);
    $cp = '';
    $cp = array_merge($cp, $_POST['cpl']);
}

那是因为$cp是一个字符串(你以这种方式显式定义它)。

$cp = ''; // <-- empty string
$cp = array_merge($cp, $_POST['cpl']);

应该是:

$cp = array(); // <--now it's an array
$cp = array_merge($cp, $_POST['cpl']);
你有

这些行:

$cp = '';
$cp = array_merge($cp, $_POST['cpl']);

这是不言自明的:$cp首先是一个字符串,错误只是关于这个事实。改为使用 array() 对其进行初始化。