Php 警告:Opencart 2.1中的非法字符串偏移量“数量”

Php 警告:Opencart 2.1中的非法字符串偏移量“数量”,php,json,opencart,opencart2.x,Php,Json,Opencart,Opencart2.x,我试着在5个小时左右解决这个问题,但我做不到。 问题是我有个错误 警告:第211行C:\laragon\www\opencart\system\library\cart.php中的非法字符串偏移量“quantity” 我的代码来自system\library\cart.php elseif ($option_query->row['type'] == 'checkbox_shildik2') { $value = json_decode(js

我试着在5个小时左右解决这个问题,但我做不到。 问题是我有个错误 警告:第211行C:\laragon\www\opencart\system\library\cart.php中的非法字符串偏移量“quantity”

我的代码来自system\library\cart.php

elseif ($option_query->row['type'] == 'checkbox_shildik2') {
                        $value = json_decode(json_encode($value),true);
                            foreach ($value as $product_option_value_id => $data) {
                                $qnt = (int)$data['quantity'];
                                if($qnt > 0){
                                    $option_value_query = $this->db->query("SELECT pov.option_value_id, ovd.name, pov.quantity, pov.subtract, pov.price, pov.price_prefix, pov.points, pov.points_prefix, pov.weight, pov.weight_prefix FROM " . DB_PREFIX . "product_option_value pov LEFT JOIN " . DB_PREFIX . "option_value ov ON (pov.option_value_id = ov.option_value_id) LEFT JOIN " . DB_PREFIX . "option_value_description ovd ON (ov.option_value_id = ovd.option_value_id) WHERE pov.product_option_value_id = '" . (int)$product_option_value_id . "' AND pov.product_option_id = '" . (int)$product_option_id . "' AND ovd.language_id = '" . (int)$this->config->get('config_language_id') . "'");
                                    $qnt = (int)$qnt;
                                    if ($option_value_query->num_rows) {
                                        if ($option_value_query->row['price_prefix'] == '+') {
                                            $option_price += $qnt*$option_value_query->row['price'];
                                        } elseif ($option_value_query->row['price_prefix'] == '-') {
                                            $option_price -= $qnt*$option_value_query->row['price'];
                                        }

                                        if ($option_value_query->row['points_prefix'] == '+') {
                                            $option_points += $qnt*$option_value_query->row['points'];
                                        } elseif ($option_value_query->row['points_prefix'] == '-') {
                                            $option_points -=$qnt* $option_value_query->row['points'];
                                        }

                                        if ($option_value_query->row['weight_prefix'] == '+') {
                                            $option_weight += $qnt*$option_value_query->row['weight'];
                                        } elseif ($option_value_query->row['weight_prefix'] == '-') {
                                            $option_weight -= $qnt*$option_value_query->row['weight'];
                                        }

                                        if ($option_value_query->row['subtract'] && (!$option_value_query->row['quantity'] || ($option_value_query->row['quantity'] < $qnt * $cart['quantity']))) {
                                            $stock = false;
                                        }

                                        $option_data[] = array(
                                            'product_option_id'       => $product_option_id,
                                            'product_option_value_id' => $product_option_value_id,
                                            'option_id'               => $option_query->row['option_id'],
                                            'option_value_id'         => $option_value_query->row['option_value_id'],
                                            'name'                    => $qnt.' x '.$option_query->row['name'],
                                            'value'                   => $option_value_query->row['name'],
                                            'type'                    => $option_query->row['type'],
                                            'quantity'                => $option_value_query->row['quantity'],
                                            'subtract'                => $option_value_query->row['subtract'],
                                            'price'                   => $qnt*$option_value_query->row['price'],
                                            'price_prefix'            => $option_value_query->row['price_prefix'],
                                            'points'                  => $qnt*$option_value_query->row['points'],
                                            'points_prefix'           => $option_value_query->row['points_prefix'],
                                            'weight'                  => $qnt*$option_value_query->row['weight'],
                                            'weight_prefix'           => $option_value_query->row['weight_prefix']
                                        );
                                    }
                                }
                    }
                    }
因此,当我单击add to cart时,我得到了意外的标记json。 我甚至不知道如何解决这个问题,问题是什么


211行是$qnt=int$data['quantity']

使用:$qnt=!清空$T数据['quantity']?int$数据['quantity']:''

尝试更改此行$qnt=int$data['quantity'];有了这个:$qnt=issetint$data['quantity']?int$数据['quantity']:'';这只是删除了未设置数量时的警告。它似乎无法正常工作,因为我有此错误致命错误:无法对表达式的结果使用isset您可以使用null!==在211use:$qnt=!清空$T数据['quantity']?int$数据['quantity']:'';哇!谢谢你的回答。你太棒了,谢谢你!!不客气。如果这个答案有用,你可以将我的评论标记为有用。。。