From d60d48d5c5059a6d8eddf66c5b296bf0cf0342b7 Mon Sep 17 00:00:00 2001 From: freebsdd Date: Sun, 26 Dec 2021 20:02:03 +0500 Subject: [PATCH] no comments --- 1-4. index.php | 158 +++++++++++++++++++++++++++++++++++++++++++++++ 5-7. index.php | 80 ++++++++++++++++++++++++ arr_products.php | 60 ++++++++++++++++++ 3 files changed, 298 insertions(+) create mode 100644 1-4. index.php create mode 100644 5-7. index.php create mode 100644 arr_products.php diff --git a/1-4. index.php b/1-4. index.php new file mode 100644 index 0000000..4896735 --- /dev/null +++ b/1-4. index.php @@ -0,0 +1,158 @@ + getProdsDB(); + } + } + + // объявление get_discount_prods - расширенного класса prods + class get_discount_prods extends prods{ + private $prods = []; + // Массив со скидками + private $discounts = [ + 'vinyl' => 25, + 'leather' => 15 + ]; + // при создании класса, массив $this -> prods получает данные с БД с товарами всеми + function __construct(){ + $this -> prods = $this -> getProdsDB(); + } + // Получаем товары + // реализация 2, т.е. собирает Html и отдаём его в случае успеха, + // если успеха нет то ошибку + // если ошибки нет и html то код возвратим + function getProds(){ + if(empty($this -> prods)) return [false, '

В данный момент товары отсутствуют напрочь!

', 'code' => 'empty']; + elseif(empty($this -> discounts)) return [false, '

В данный момент скидок на товары нет!

', 'code' => 'empty']; + else{ + $html = ''; + $has = false; + foreach($this -> prods as $arr_item){ + // При работе с базой перебора прямого бы не было + if(!empty($this -> discounts[$arr_item['prod_matter']]) && !empty($arr_item['prod_count'])){ + $prod_price = (float)$arr_item['prod_price'] - ((float)$arr_item['prod_price'] / 100 * (float)$this -> discounts[$arr_item['prod_matter']]); + $has = true; + $html .= '"; + } + } + $html .= '
' .$arr_item['prod_id'] . "" . $arr_item['prod_name'] . "" . number_format($prod_price, 2, ',', ' ') . ' ' . '' . $arr_item['prod_price'] . '' . "
'; + if(!$has) return [false, '

В данный момент товары со скидкой отсутствуют!

', 'code' => 'empty']; + } + return [true, 'html' => $html]; + } + } + + // Распродажа залежавшегося товара + class get_sale_prods extends prods{ + // Сколько минимум должно быть, чтоб учавствовать в распродаже + private $sale = 5; + private $discount = 50; + // Распродажа товаров, + function getProdsDB(){ + // Иммитируем запрос в базу + $arr_prods = []; + require './arr_products.php'; + if(empty($arr_prods)) return [false, 'В данный момент товары отсутствуют напрочь!', 'code' => 'empty']; + foreach($arr_prods as $_id => $arr_item){ + if(!empty($arr_item['prod_count']) && $arr_item['prod_count'] <= $this -> sale) unset($arr_prods[$_id]); + } + if(empty($arr_prods)) return [false, 'В данный момент скидок на товары нет!', 'code' => 'empty']; + return [true, 'arr' => $arr_prods]; + } + function get_discount(){ + return $this -> discount; + } + function getProds(){ + return $this -> getProdsDB(); + } + } + + + $prods = new prods(); + // echo $prods -> x; + // var_dump($prods -> getProds()); + + + $prods = $prods -> getProds(); + if(empty($prods)){ + echo "

В данный момент товары отсутствуют!

"; + } + else{ + echo ""; + foreach($prods as $arr_item){ + echo ""; + } + echo "
iDNaimPrice
" . $arr_item['prod_id'] . "" . $arr_item['prod_name'] . "" . number_format($arr_item['prod_price'], 2, ',', ' ') . "
"; + } + + $prods = new get_discount_prods(); + $__r = $prods -> getProds(); + + echo "
Товары со скидкой:
"; + + if(!$__r[0] && !empty($__r['code'])){ + echo $__r[1]; + } + elseif(!$__r[0]){ + echo '

Error: ' . $__r[1] . '

'; + } + else{ + echo $__r['html']; + } + + $prods = new get_sale_prods(); + $__r = $prods -> getProds(); + + $discount = $prods -> get_discount(); + + if($discount <= 0){ + echo "

В данный момент распродажи нет!

"; + } + else{ + echo "
Распродажа:
"; + if(!$__r[0] && !empty($__r['code'])){ + echo $__r[1]; + } + elseif(!$__r[0]){ + echo '

Error: ' . $__r[1] . '

'; + } + else{ + echo ""; + foreach($__r['arr'] as $arr_item){ + $prod_price = (float)$arr_item['prod_price'] - ((float)$arr_item['prod_price'] / 100 * $discount); + echo "'; + } + echo "
iDNaimPrice
" . $arr_item['prod_id'] . "" . $arr_item['prod_name'] . "" . number_format($prod_price, 2, ',', ' ') . ' ' . $arr_item['prod_price'] . '
"; + } + } + + + +?> \ No newline at end of file diff --git a/5-7. index.php b/5-7. index.php new file mode 100644 index 0000000..6505a2c --- /dev/null +++ b/5-7. index.php @@ -0,0 +1,80 @@ +foo(); // 1 + // + $a2->foo(); // 2 + // + $a1->foo(); // 3 + // + $a2->foo(); // 4 + + /* + * , static 1 , + */ + + // , 1 + namespace p2; + + class A { + public function foo() { + static $x = 0; + echo ++$x; + } + } + // , A + class B extends A { + } + echo "
p2: "; + $a1 = new \p2\A(); + $b1 = new \p2\B(); + $a1->foo(); // 1 + $b1->foo(); // 1 + $a1->foo(); // 2 + $b1->foo(); // 2 + + /* + * , 2 , , , static "" . + */ + + + namespace p3; + + class A { + // function __construct($a, $c){;} + public function foo() { + static $x = 0; + echo ++$x; + } + } + class B extends A { + } + echo "
p3: "; + $a1 = new A; + $b1 = new B; + $a1->foo(); // 1 + $b1->foo(); // 1 + $a1->foo(); // 2 + $b1->foo(); // 2 + + /* + * namespace p2, , , __construct , , .. , . __construct . + */ +?> \ No newline at end of file diff --git a/arr_products.php b/arr_products.php new file mode 100644 index 0000000..c0d2144 --- /dev/null +++ b/arr_products.php @@ -0,0 +1,60 @@ + 1, + 'prod_name' => 'Мини юбка, латекс', + 'prod_price' => 1500, + 'prod_desc' => 'Подчеркнёт Вашу фигуру, все будут в ударе', + 'prod_matter' => 'latex', + 'prod_count' => 5, + ], + [ + 'prod_id' => 2, + 'prod_name' => 'Мини юбка, кожа', + 'prod_price' => 1800, + 'prod_desc' => 'Красиво будет сидеть на Вашей фигуру, Вам понравится', + 'prod_matter' => 'leather', + 'prod_count' => 7, + ], + [ + 'prod_id' => 3, + 'prod_name' => 'Атласные перчатки', + 'prod_price' => 900, + 'prod_desc' => 'Подчеркнёт изящество Ваших рук', + 'prod_matter' => 'satin', + 'prod_count' => 5, + ], + [ + 'prod_id' => 4, + 'prod_name' => 'Виниловое платье', + 'prod_price' => 1800, + 'prod_desc' => 'Подчеркнёт изящество Ваших рук', + 'prod_matter' => 'vinyl', + 'prod_count' => 8, + ], + [ + 'prod_id' => 5, + 'prod_name' => 'Виниловая юбка карандаш', + 'prod_price' => 900, + 'prod_desc' => 'Подчеркнёт изящество Ваших рук', + 'prod_matter' => 'vinyl', + 'prod_count' => 0, + ], + [ + 'prod_id' => 6, + 'prod_name' => 'Чулки из искусственной кожи', + 'prod_price' => 1100, + 'prod_desc' => 'Подчеркнёт изящество Ваших рук', + 'prod_matter' => 'leather', + 'prod_count' => 3, + ], + [ + 'prod_id' => 7, + 'prod_name' => 'Кожанный комбинизен', + 'prod_price' => 1100, + 'prod_desc' => 'Подчеркнёт изящество Ваших рук', + 'prod_matter' => 'leather', + 'prod_count' => 4, + ], + ]; +?> \ No newline at end of file