Форумы портала PHP.SU » Разное » Обсуждение статей » Начал учить ООП PHP5, помогите с ответом

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

1. cosmos44 - 01 Февраля, 2017 - 20:58:59 - перейти к сообщению
Всем доброго времени суток!
В PHP программирую уже порядка трех лет, но решил изучить ООП php5. У меня конечно много вопросов, но на данный момент всего два. Вопросы основаны по ссылке http://www.php.su/articles/?cat=oop&page=006 (прочитал я конечно не только данную статью)

1-й вопрос?! В чем преимущество (на данном примере) использования конструктора при выводе Title, Description, Keywords, в сравнении с нативным кодом PHP (SQL->SELECT-REZULT, полученные данные присваиваем значения переменным и просто делаем echo тег же переменных в требуемых местах – к примеру Title, Description, Keywords?

2-й вопрос?! «class IndexPage extends HTMLPage» должен располагаться в структуре после «abstract class HTMLPage»? так как работает так и так. Есть ли какое ПО для отладки ООП? Хотелось бы себя контролировать на стадии обучения.

PHP:
скопировать код в буфер обмена
  1.  
  2. abstract class HTMLPage {
  3.  protected $Title = "";
  4.  protected $Description = "";
  5.  protected $Keywords = "";
  6.  function __construct($Title, $Description, $Keywords) {
  7.         $this->Title = "Домашняя страница | " . $Title;
  8.         $this->Description = " Description " . $Description;
  9.         $this->Keywords = " Keywords " . $Keywords;
  10.  }
  11.  
  12. function BeginHTML() {
  13. echo '
  14. <!DOCTYPE html>
  15.         <html>
  16.         <head>
  17.         <meta charset="utf-8">
  18.         <title>'.$this->Title.'</title>
  19.         <meta name="description" content="'.$this->Description.'">
  20.         <meta name="keywords" content="'.$this->Keywords.'">
  21.         <link rel="stylesheet" href="">
  22.         </head>
  23.         <body>';
  24. }
  25.        
  26.  function EndHTML() {
  27.          echo '
  28.         </body>
  29.         </html> ';
  30.  }
  31.        
  32.         abstract function MainText();
  33.        
  34.          function Write() {
  35.                 $this->BeginHTML();
  36.                 $this->Logo();
  37.                 $this->Menu();
  38.                 $this->MainText();
  39.                 $this->Menu();
  40.                 $this->EndHTML();
  41.          }
  42.  }
  43.  
  44.  
  45.  
  46. class IndexPage extends HTMLPage {
  47.          function MainText() {
  48.          echo "<p>Текст Текст Текст Текст Текст Текст Текст </p>";
  49.          }
  50.          function Logo() {
  51.                         echo "<h1>Заголовок H1</h1>";
  52.          }
  53.          function Menu() {
  54.                  echo "
  55.                 <table>
  56.                 <tr>
  57.                 <td><a href='index.php'>Главная страница</a></td>
  58.                 <td><a href='bio.php'>Биография</a></td>
  59.                 <td><a href='links.php'>Ссылки</a></td>
  60.                 </tr>
  61.                 </table> ";
  62.          }
  63. }
  64. $Page = new IndexPage("Добавлено к Title", "Добавлено к Description", "Добавлено к Keywords");
  65. $Page->Write();
  66.  
  67.  

 

Powered by ExBB FM 1.0 RC1