2

私はPHP配列を持っています。

$this->cart = array();

私が何をしても、配列が新しい値を取得せず、既存の値を新しい値に置き換えるだけであることを除いて、これはすべてind and dandyです。

私はarray_merge、array_pushなどを試しましたが、同じことが起こりましたが、これはうまくいくはずのコードです。

$this->cart[]=$input;

最初に使用すると、配列に 1 つの項目があると表示されます "Array ( [0] => 1 "。2 回目に使用すると、最初の値 "Array ( [0] => 2 ) "

値の追加は、ID を取得して値として配列に入れるフォームによってトリガーされます。

echo '<input type="hidden" name="addeditem" value="2">';

しかし、どのコードであっても、配列を追加するのではなく、置き換えるだけで、アイデアはありません。キーと値を追加し、2 番目の配列を作成してマージしようとしましたが、何も機能しません。

カートに入れる機能はこちら

function addToCart($input){
$this->cart[]=$input;
$this->setCartCount();
}

解決済み: コメントを参照してください。

4

2 に答える 2

1

$this->cart がグローバル変数であり、 addToCart() を呼び出すたびに配列が作成されないことは確かですか?

試してみてください。このような:

  1. カートオブジェクトを持つ

    public class cart{
    
       private $items;
       function __construct() {
         $items=array();
       }
       public function addToCart($item){
         $this->items[]=$item;
       }
    }
    
  2. コード内の別の場所にアイテムをカートに追加します。

    $cart=$manager->getCart();
    $cart->addToCart($your_new_item);
    
于 2012-05-21T15:34:35.843 に答える
-1

名前は次のとおりです。addeditem[]

于 2012-05-21T15:23:39.543 に答える