类中的foreach数组

时间:2013-01-09 10:56:54

标签: php

我在类中的foreach中使用数组时遇到问题。我收到了警告..

  

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

在线

foreach($this->recordOfDiscounts as $key => $discount)

有问题的功能如下,

public function modify_price( $price, $product_id ) {
    foreach($this->recordOfDiscounts as $key => $discount) {
        foreach($discount['get_one_free'] as $id) {
            if($id == $product_id){
                if( $discount['valid'] > 0 ) {
                    $price -= $discount['cost'];
                    $this->recordOfDiscounts[$key]['valid'] -= 1;
                }
            }
        }
    }
    return $price;
}

我是PHP新手,但我收集的是类范围($this->)需要在类中添加一个var前缀。

error_log(print_r($this->recordOfDiscounts),0);

输出正确的数组信息,所以我知道它的定义。

Array
(
    [0] => Array
        (
            [valid] => 1
            [buy_one] => 2351
            [cost] => 20
            [old_cost] => 20
            [get_one_free] => Array
                (
                    [0] => 2471
                    [1] => 2470
                    [2] => 2472
                    [3] => 2473
                    [4] => 2474
                    [5] => 2475
                    [6] => 2476
                    [7] => 2477
                )

        )

)

1 个答案:

答案 0 :(得分:2)

其中一个foreach语句作为语句的第一部分具有不可迭代的内容。

$this->recordOfDiscounts不是数组,或者在外部foreach的一次迭代中,$discount['get_one_free']不可迭代。