2

我有一个表格,其中有三个这样的复选框:

    <td>Wireless <input type="checkbox" name="services[]" value="wireless" /></td>
      </tr>
  <tr>
    <td>Cellular <input type="checkbox" name="services[]" value="cellular" /></td>
  </tr>
  <tr>
    <td>Security <input type="checkbox" name="services[]" value="Security" /></td>
<input type="submit" name="submit">

然后我提取($_POST),并有这个代码

$comServices = implode(",", $services);

但我收到一个错误:

警告:implode() [function.implode]:传入的参数无效..

有谁知道我为什么会收到这个错误?

4

3 回答 3

15

如果您没有选中任何复选框,则 $services 将是未定义的,而不是一个空数组。

你可以采取$comServices = implode(",", (array)$services);措施防止它。

于 2010-05-06T21:23:26.547 回答
2

$services未选中复选框时将为​​空(如 中的空null,而不是“空数组”中的空)。

您必须测试 $services 是否实际上是一个数组:

if (is_array($services))
 $comServices = implode(",", $services)
于 2010-05-06T21:24:16.420 回答
0

通常,这意味着您的变量不是数组...您可以使用 is_array() 函数检查它...

于 2010-05-06T21:24:44.653 回答