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

时间:2014-05-11 14:33:43

标签: php mysql post

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 [&#39;价格&#39;]。在我的代码中,我尝试在$ price上应用折扣。我知道折扣已经设定。但它给了我错误! )SCREAM:忽略错误抑制  警告:implode()[function.implode]:传递的参数无效

3 个答案:

答案 0 :(得分:1)

在if条件

之前初始化$ pri数组
$pri = array();

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

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

答案 1 :(得分:1)

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

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

实际上它应该小于运营商..

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

答案 2 :(得分:0)

这里未定义

$pri,因此NULL。而NULL是一个无效的论点。

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

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

修复此问题,并在循环之前编写$pri = array();以初始化它。