クラス内の 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
)
)
)