if(isset($_POST['price']))
{
$ret = array();
$price= $_POST['price'];
array_push($ret,$price);
$pr=count($ret);
for($i=0; $i>$pr;$i++)
{
$pri[]=$pr[$i]*$disount/100;
echo "<script>alert('$i'); </script>";
}
$nprice = implode("," , $pri);
}
else $nprice = '0';当数据提交时,它将得到$_POST‘’price‘。在我的代码中,我尝试对$price.As应用折扣,我知道折扣已经设置好了。但它给了我错误!)SCREAM:忽略错误抑制以显示警告: implode() function.implode:传递的参数无效
发布于 2014-05-11 22:36:46
在if条件之前初始化$pri数组
$pri = array();另外,对于for循环,如果$pr是一个数组,则条件应该类似于:
for($i=0; $i<count($pr);$i++)发布于 2014-05-11 22:36:54
您的for循环实际上是错误的..将其更改为
for($i=0; $i<$pr;$i++)
//^^ <--- Do this change..实际上它应该小于运算符..
您有大于运算符,因此条件失败,因此控制流不会进入for循环内部,因此$pri数组显然不会被填充,从而导致此错误。
发布于 2014-05-11 22:37:13
$pri在这里没有定义,所以是NULL。NULL对于内爆来说是一个无效的参数。
for($i=0; $i>$pr;$i++)您似乎使用了错误的比较符号(<与>),因此不会进入循环,也不会将$pri设置为数组。
解决这个问题,为了安全起见,在循环之前写入$pri = array();来初始化它。
https://stackoverflow.com/questions/23593870
复制相似问题