PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 4
DivMan Отправлено: 09 Апреля, 2017 - 18:05:10 • Тема: абстрактные классы и наследование • Форум: Объектно-ориентированное программирование

Ответов: 0
Просмотров: 548
Проверьте пожалуйста задание:

1. Создайте базовый класс продукта.
2. Создайте три любых типа продукта (класса), в разных категориях;
3. Все продукты, кроме одного, имеют 10 процентную скидку и их цена должна выводиться с ней;
4. Один тип продукта - имеет скидку только в том случае, если его вес больше 10 килограмм;

Используйте примеси, интерфейсы или абстрактные классы в решении задачи.

я не знаю, как правильно использовать абстрактные классы и интерфейсы.

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. header('Content-Type: text/html; charset:utf-8');
  4.  
  5. abstract class Product{
  6.         public function __construct($title, $price, $weight){
  7.                 $this->title = $title;
  8.                 $this->price = $price;
  9.                 $this->weight = $weight;
  10.         }
  11. }
  12.  
  13. class Planshet extends Product{
  14.         public $discount = 10;
  15.        
  16.         public function getPrice(){
  17.                 if ($this->discount) {
  18.                         return round($this->price - ($this->price * $this->discount/100));
  19.                 }
  20.                 else {
  21.                         return $this->price;
  22.                 }
  23.         }
  24. }
  25.  
  26. class Potato extends Planshet{
  27.         public function getPrice(){
  28.                 if ($this->weight > 10000) {
  29.                         return round($this->price - ($this->price * $this->discount/100));
  30.                 }
  31.                 else {
  32.                         return $this->price;
  33.                 }
  34.         }
  35. }
  36.  
  37. class Jacket extends Product{}
  38.  
  39. $planshet = new Planshet('Планшет', 2000, 400);
  40. $potato = new Potato('Картошка', 700, 4000);
  41. $potato2 = new Potato('Ещё картошка', 700, 12000);
  42. $jacket = new Jacket('Куртка', 6300, 2000);
  43.  
  44. ?>
  45. <!DOCTYPE html>
  46. <html>
  47.         <head>
  48.                 <meta charset="utf-8">
  49.         </head>
  50.         <body>
  51.                 <?PHP
  52.                         echo $planshet->title . ' цена без скидки ' . $planshet->price . ', со скидкой ' . $planshet->getPrice();
  53.                         echo '<br>';
  54.                         echo $potato->title . ' цена без скидки ' . $potato->price . ', со скидкой ' . $potato->getPrice();
  55.                         echo '<br>';
  56.                         echo $potato2->title . ' цена без скидки ' . $potato2->price . ', со скидкой ' . $potato2->getPrice();
  57.                         echo '<br>';
  58.                         echo $jacket->title. ' цена ' . $jacket->price;
  59.                 ?>
  60.         </body>
  61. </html>
  62.  
  63.  
DivMan Отправлено: 08 Апреля, 2017 - 23:12:38 • Тема: Вызывает свойств объекта из другого • Форум: Объектно-ориентированное программирование

Ответов: 1
Просмотров: 656
Покажи код и пространство имён тут вообще не причём.
DivMan Отправлено: 08 Апреля, 2017 - 23:07:02 • Тема: Мой первый вывод новостей • Форум: Объектно-ориентированное программирование

Ответов: 0
Просмотров: 448
Есть такое задание:

1. Создайте класс новостей для сайта.

2. Реализуйте страницу, на которой вы будете эти новости выводить используя только методы класса (к свойствам обращаться нельзя).

Я это задание сделал, но думаю, что мой код очень ужасный и не правильный, что я не так сделал?

А может надо было поместить все статьи в один json файл и вывести разметку циклом?

Не говорите мне пока про базу данных, сначала я хочу потренироваться на jsone.

index.php

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. header('Content-Type: text/html; charset=utf-8');
  3.  
  4. class News{
  5.         public function __construct($file_get_contents){
  6.                 $this->file_get_contents = file_get_contents($file_get_contents);
  7.         }
  8.         public function newsStr(){
  9.                 return $this->file_get_contents;
  10.         }
  11.         public function newsArray(){
  12.                 return json_decode($this->newsStr(), true);
  13.         }
  14.         public function newsCells(){
  15.                 return $this->newsArray()['news'];
  16.         }
  17.         public function newsTitle(){
  18.                 return $this->newsCells()['title'];
  19.         }
  20.         public function newsDate(){
  21.                 return $this->newsCells()['date'];
  22.         }
  23.         public function newsAuthor(){
  24.                 return $this->newsCells()['author'];
  25.         }
  26.         public function newsDescription(){
  27.                 return $this->newsCells()['description'];
  28.         }
  29. }
  30. ?>
  31.  
  32. <!DOCTYPE html>
  33. <html>
  34.         <head>
  35.                 <title>Новости сайта</title>
  36.                 <link rel="stylesheet" href="./style.css">
  37.         </head>
  38. <body>
  39.         <div class="content">
  40.                 <h2>Последние новости</h2>
  41.                 <div class="news">
  42.                         <?PHP $news1 = new News('news1.json');?>
  43.                         <div class="title"><?PHP echo $news1->newsTitle()?></div>
  44.                         <div class="description"><?PHP echo $news1->newsDescription()?></div>
  45.                         <div class="date inline-block"><span>Дата:</span> <?PHP echo $news1->newsDate()?></div>
  46.                         <span>|</span>
  47.                         <div class="author inline-block"><span>Добавил</span> <?PHP echo $news1->newsAuthor()?></div>
  48.                 </div>
  49.                
  50.                 <div class="news">
  51.                         <?PHP $news1 = new News('news2.json');?>
  52.                         <div class="title"><?PHP echo $news1->newsTitle()?></div>
  53.                         <div class="description"><?PHP echo $news1->newsDescription()?></div>
  54.                         <div class="date inline-block"><span>Дата:</span> <?PHP echo $news1->newsDate()?></div>
  55.                         <span>|</span>
  56.                         <div class="author inline-block"><span>Добавил</span> <?PHP echo $news1->newsAuthor()?></div>
  57.                 </div>
  58.                
  59.                 <div class="news">
  60.                         <?PHP $news1 = new News('news3.json');?>
  61.                         <div class="title"><?PHP echo $news1->newsTitle()?></div>
  62.                         <div class="description"><?PHP echo $news1->newsDescription()?></div>
  63.                         <div class="date inline-block"><span>Дата:</span> <?PHP echo $news1->newsDate()?></div>
  64.                         <span>|</span>
  65.                         <div class="author inline-block"><span>Добавил</span> <?PHP echo $news1->newsAuthor()?></div>
  66.                 </div>
  67.         </div>
  68. </body>
  69. </html>


css

CODE (htmlphp):
скопировать код в буфер обмена
  1. .content{
  2.         border: 1px solid;
  3.         width: 600px;
  4.         margin: 0 auto;
  5. }
  6.  
  7. h2{text-align: center;}
  8.  
  9. .news{
  10.         border: 3px solid orange;
  11.         padding: 10px;
  12. }
  13.  
  14. .title, .description{
  15.         padding-bottom: 10px;
  16. }
  17.  
  18. .inline-block{
  19.         display: inline-block;
  20.         vertical-align: top;
  21.         font-weight: bold;
  22. }


news1.json

CODE (htmlphp):
скопировать код в буфер обмена
  1. {
  2.         "news": {
  3.                 "title": "Изобрён вечный двигатель",
  4.                 "date": "05.04.2017",
  5.                 "author": "Admin",
  6.                 "description": "Совсем недавно, придумали вечный двигатель, который не требует обслуживания, но в эксплуатацию его запретили, так как хотят, что бы люди постоянно  мучились в рабстве"
  7.         }
  8. }



news2.json
CODE (htmlphp):
скопировать код в буфер обмена
  1. {
  2.         "news": {
  3.                 "title": "Клонирование бензина",
  4.                 "date": "05.04.2017",
  5.                 "author": "Admin",
  6.                 "description": "Британские учённые научились клонировать бензин, теперь часть ресурсов планеты, будут спасены"
  7.         }
  8. }
  9.  
  10.  


news3.json

CODE (htmlphp):
скопировать код в буфер обмена
  1. {
  2.         "news": {
  3.                 "title": "Современная медицина",
  4.                 "date": "05.04.2017",
  5.                 "author": "Admin",
  6.                 "description": "Русским учённым придуман специальный луч, который может удалить аппендицит, без вскрытия"
  7.         }
  8. }
  9.  
  10.  
DivMan Отправлено: 15 Февраля, 2017 - 18:03:08 • Тема: Возвращение новичка ( или как задавать простые вопросы и что бы на них был дан ответ :)) • Форум: Вопросы новичков

Ответов: 4
Просмотров: 492
Я продолжу тему.

Почему не переходит по ссылкам?

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $scan = __DIR__;
  4. $dir = scandir($scan);
  5. echo '<pre>';
  6. print_r ($dir);
  7. echo '</pre>';
  8. ?>
  9. <ol>
  10.     <?foreach($dir as $v):?>
  11.         <?if(is_dir($scan.'/'.$v)):?>
  12.         <?PHP $l = isset($link) ? $link .'/' .$v :$v; ?>
  13.         <li id="dir"><a href="fm.php?page=program&link=<?=$l?>"><?=$v?></a></li>
  14.         <?else:?>
  15.         <li id='file'><?=$v?></li>
  16.         <?endif?>
  17.     <?endforeach?>
  18. </ol>
  19.  

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB