PHP シングルトン モードはモール ショッピング カート機能を実装します - PHP サンプル チュートリアル この小さな機能を完了するには、PHP ショッピング カートの開発要件は次のとおりです。セッション 2: シングルトン モードで機能を開発: プロダクトを 1 つ追加、削除、変更、確認、追加して減らす
PHP シングルトン モードはモールのショッピング カート機能を実装します - PHP サンプル チュートリアル この小さな機能を完了するには、要件を記述し、良い習慣を身につけられる必要があります
Php ショッピング カートの開発要件は次のとおりです: php100.com
1: ショッピングカートがセッションに配置されます
2: シングルトンモデルを使用して開発する
機能:
追加、削除、変更、確認
商品を追加
商品を 1 つ減らす (変更、数量)
を削除
アイテムを削除します
ショッピングカートをクリア
チェック:
全商品リストに戻る
商品にはいくつかの種類があります
合計でいくつかの商品があります
ショッピングカート内の商品の合計はいくらですか
phpショッピングカートの原理を理解すると、コードを書くのは非常に簡単になります。 以下は、
で書かれたショッピングカートクラスです。PHP コードは次のとおりです:
クラスカート{
static protected $ins; //インスタンス変数
protected $item = array() //プロダクトコンテナを置きます
// 外部呼び出しを無効にする
最終保護関数 __construct(){
}
//クローンは禁止されています
最終保護関数 __clone(){
}
//クラスの内部インスタンス化
静的保護関数 Getins(){
if(!(self::$insinstanceofself)){
self::$ins = 新しい self();
}
return self::$ins;
}
//複数のページにわたって商品を保存するには、オブジェクトをセッションに入れます
パブリック関数 Getcat(){
if(!($_SESSION['cat']) !($_SESSION['cat'] インスタンスオブセルフ)){
$_SESSION['cat'] = self::Getins();
}
return $_SESSION['cat'];
}
// キューに入れるときに、$item.
に存在するかどうかを確認します。パブリック関数 Initem($goods_id){
if($this->Gettype() == 0){
false を返します;
}
if(!(array_key_exists($goods_id,$this->item))){
false を返します;
}その他{
return $this->item[$goods_id]['num'] //この商品の番号を返します
;}
}
//商品を追加
パブリック関数 Additem($goods_id,$name,$num,$price){
if($this->Initem($goods_id) != false){
$this->item[$goods_id]['num'] += $num;
戻る;
}
$this->item[$goods_id] = array() //商品は配列
;$this->item[$goods_id]['num'] = $num; この商品の購入数量
$this->item[$goods_id]['name'] = $name
$this->item[$goods_id]['price'] = $price
}
//商品を 1 つ削減します
パブリック関数 Reduceitem($goods_id,$num){
if($this->Initem($goods_id) == false){
戻る;
}
if($num > $this->Getunm($goods_id)){
unset($this->item[$goods_id]);
}その他{
$this->item[$goods_id]['num'] -=$num;
}
}
//アイテムを削除します
パブリック関数 Delitem($goods_id){
if($this->Initem($goods_id)){
unset($this->item[$goods_id]);
}
}
//購入商品リストに戻る
パブリック関数Itemlist(){
$this->item;
を返す}
//商品は全部で何種類ありますか
パブリック関数 Gettype(){
return count($this->item);
}
//商品の合計数を取得します
パブリック関数 Getunm($goods_id){
return $this->item[$goods_id]['num'];
}
// ショッピングカート内の商品数を確認します
パブリック関数 Getnumber(){
$num = 0;
if($this->Gettype() == 0){
0 を返す;
}
foreach($this->item as $k=>$v){
$num += $v['num'];
}
$num を返します;
}
//合計金額を計算します
パブリック関数 Getprice(){
$価格 = 0;
if($this->Gettype() == 0){
0 を返す;
}
foreach($this->item as $k=>$v){
$price += $v['num']*$v['num'];
}
$price を返します;
}
//ショッピングカートをクリア
パブリック関数 Emptyitem(){
$this->item = array();
}
}
/*
独自のテストコードを考えてください
*/
?php
include_once('Cart.php');
$cart = Cart::Getcat();
$cart->Additem('1','Spy','5','9999');
print_r($cart);