首页 文章

警告:implode()[<a href= 'function.implode'> function.implode </a>]:传递的参数无效

提问于
浏览
0
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上应用折扣 . 我知道折扣已经设定 . 但它给了我错误! )SCREAM:警告忽略错误抑制:implode()[function.implode]:传递的参数无效

3 回答

  • 1

    您的 for 循环实际上是错误的..将其更改为

    for($i=0; $i<$pr;$i++)
              //^^ <--- Do this change..
    

    实际上它应该少于操作员..

    你有大于运算符,因此条件失败,所以控制流不会进入 for 循环,因此 $pri 数组显然不会被填充,从而导致此错误 .

  • 0

    在if条件之前初始化$ pri数组

    $pri = array();
    

    同样对于for循环,如果$ pr是一个数组,条件应该类似于:

    for($i=0; $i<count($pr);$i++)
    
  • 1

    $pri 在这里未定义,所以 NULL . 并且 NULL 是内爆的无效参数 .

    for($i=0; $i>$pr;$i++)
    

    您似乎使用了错误的比较符号( <> ),因此永远不会输入循环且 $pri 永远不会设置为数组 .

    修复此问题并在安全性之前写入 $pri = array(); 以进行初始化 .

相关问题