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 .= '| ' .$arr_item['prod_id'] . " | " . $arr_item['prod_name'] . " | " . number_format($prod_price, 2, ',', ' ') . ' ' . '' . $arr_item['prod_price'] . '' . " | ";
+ }
+ }
+ $html .= '
';
+ 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 "| iD | Naim | Price |
";
+ foreach($prods as $arr_item){
+ echo "| " . $arr_item['prod_id'] . " | " . $arr_item['prod_name'] . " | " . number_format($arr_item['prod_price'], 2, ',', ' ') . " |
";
+ }
+ echo "
";
+ }
+
+ $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 "| iD | Naim | Price |
";
+ foreach($__r['arr'] as $arr_item){
+ $prod_price = (float)$arr_item['prod_price'] - ((float)$arr_item['prod_price'] / 100 * $discount);
+ echo "| " . $arr_item['prod_id'] . " | " . $arr_item['prod_name'] . " | " . number_format($prod_price, 2, ',', ' ') . ' ' . $arr_item['prod_price'] . ' |
';
+ }
+ echo "
";
+ }
+ }
+
+
+
+?>
\ 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