我正在使用is_array
函数,但也需要使用isset
,就像没有选择任何内容一样,我得到一个未定义的索引错误。
我还在学习PHP
所以不确定如何将我写的内容与isset
结合起来,我的代码在下面
$special = $_POST['special'];
if (is_array($_POST['special'])) {
$special = implode(",", $_POST['special']);
} else {
$special = $_POST['special'];
}
非常感谢
答案 0 :(得分:4)
您不需要使用is_array
,您可以将所有内容强制为数组...
$special = isset($_POST['special']) ? $_POST['special'] : null;
$special = implode(",", (array) $special);
答案 1 :(得分:2)
您正尝试将$_POST['special']
的值分配给$special
是否已设置。这就是你收到错误的原因。以下可能有效:
$special = "";
if (isset($_POST['special'])) {
if(is_array($_POST['special'])) {
$special = implode(",", $_POST['special']);
} else {
$special = $_POST['special'];
}
}
如果$_POST['special']
是一个数组,它将使用implode将其转换为字符串并将其分配给$special
。
如果它不是数组,但仍然设置,则将值赋给$special
答案 2 :(得分:0)
您正在尝试分配$_POST
数组的值,无论它是否已设置。并告诉计算机是否设置了$_POST['special']
,然后将其分配给$special
,如果未设置,则再次将其分配给$special
。然后你就会得到那个错误。
你的if语句没有意思。
$special = "";
$pos = false;
if (isset($_POST['special']))
{
$pos = strpos($_POST['special'], ',');
if($pos !== false)
{
$special = implode(",", $_POST['special']);
}
else
{
$special = $_POST['special'];
}
}
答案 3 :(得分:0)
如果不存在值$_POST[ 'special' ]
,则第一行会抛出错误,因为将$_POST[ 'special' ]
分配给$special
假设存在值。做你想要的正确方法如下:
if ( isset( $_POST[ 'special' ] ) )
$special = implode( ',', $_POST[ 'special' ] );
else
$special = null;
使用上面的代码,您可以稍后在脚本中使用严格的比较检查$special
是否为null
。如果是,则未设置$_POST[ 'special' ]
。否则,您可以假设它包含内爆的字符串值。
当然,您可以添加更多检查,例如确保值不为空,等等。