【问题标题】:php Warning: Invalid argument supplied for foreach()php 警告:为 foreach() 提供的参数无效
【发布时间】:2015-05-27 11:05:44
【问题描述】:

警告:为 foreach() 提供的参数无效

我真的不明白,也不知道为什么:(

我在这一行有警告

foreach($formResponse as $obj){
    $formResponse = array();
    $formResponse = '[
        {"name": "Ds_Merchant_Amount", "value": '.$data['Amount'].'},
        {"name": "Ds_Merchant_Order", "value": '.$data['Id'].'}, 
        {"name": "Ds_Merchant_MerchantCode", "value": '.$data['Fuc'].'},
        {"name": "Ds_Merchant_Terminal", "value": '.$data['Terminal'].'},
        {"name": "Ds_Merchant_TransactionType", "value": '.$data['Trans'].'},
        {"name": "Ds_Merchant_Titular", "value": '.$data['Titular'].'},
        {"name": "Ds_Merchant_MerchantName", "value": '.$data['Nombre'].'},
        {"name": "Ds_Merchant_MerchantData", "value": '.sha1($data['Notify_url']).'},
        {"name": "Ds_Merchant_MerchantURL", "value": '.$data['Notify_url'].'},
        {"name": "Ds_Merchant_ProductDescription", "value": '.$data['Productos'].'},
        {"name": "Ds_Merchant_UrlOK", "value": '.$data['Notify_url'].'},
        {"name": "Ds_Merchant_UrlKO", "value": '.$data['Notify_url'].'},
        {"name": "Ds_Merchant_MerchantSignature", "value": '.$data['Firmafinal'].'},
        {"name": "Ds_Merchant_ConsumerLanguage", "value": '.$data['Idiomas'].'},
        {"name": "Ds_Merchant_PayMethods", "value": '.$data['Tipopago'].'}
    ]';             

    $formResult = "<form action=". $data['action']." method='post'>'";

    foreach($formResponse as $obj){
        $inputName = $obj -> name; 
        $inputValue = $obj -> value; 

        $formResult .= "<input type='hidden' name='". $inputName ."' value='". $inputValue ."'></input>";
    }

【问题讨论】:

  • json_decode($formResponse);
  • 当您需要将 $formResponse 作为 PHP 数组时,您已将其创建为 JSON 字符串。
  • 你的 $formResponse 不再是一个数组了...

标签: php arrays json warnings


【解决方案1】:

使用

$formResponse=json_decode($formResponse);

foreach 循环开始之前

【讨论】:

    【解决方案2】:

    首先你必须在使用 foreach 循环之前解码 json 数据,因为它只接受你必须使用的数组和对象$formResponse=json_decode($formResponse, true);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-01
      • 1970-01-01
      相关资源
      最近更新 更多