За последние 24 часа нас посетили 20118 программистов и 1006 роботов. Сейчас ищут 378 программистов ...

ООП ё маё

Тема в разделе "PHP для новичков", создана пользователем BAbl_gun, 19 апр 2021.

  1. BAbl_gun

    BAbl_gun Новичок

    С нами с:
    25 апр 2020
    Сообщения:
    32
    Симпатии:
    2
    Доброго времени суток кодеры! У меня следующий вопрос к вам:
    Задача состоит в получении данных с инпута после чего полученные данные проверяются!
    PHP:
    1. class User{
    2.   public $name = "Name of space empty";
    3.   public $age = "Age of space empty";
    4. public function getDefine($a){
    5.     $this->name = $a;
    6.   }
    7.   // Метод отображения иформации полученной с формы
    8. public function show(){
    9.   echo $this->name;
    10.   }
    11. }
    12.  
    13. if (!empty($_POST['Name']||$_POST['Age'])){
    14. // может код который ниже засунуть в отдельную функцию и вызывать её?
    15.   if ("$_POST['Age']" <= 12) {
    16.     echo "Доступ закрыт!";
    17.   } else {
    18.     $user = new User;
    19.     $user->getDefine($_POST['Name']);
    20.     $user->show();
    21.     echo "True";
    22.   }
    23.  
    24. } else {
    25.   echo "False";
    26. }
    Если выполнить компиляцию данного кода он вызовет ошибку, но суть не в этом! Мне важно понять логику, а код я потом исправлю. В данном коде необходимо создать отдельную функцию которая будет сравнивать Возраст т.е. "Age" ? Лучше всегда создавать функции?
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    Можно, но не необходимо.

    Функции создаются:
    1. Для избегания дублирования кода в разных местах, особенно большого. К примеру, вы хотите в трёх местах считать синусы через разложение в ряд. Каждый раз писать весь алгоритм - жуть, поэтому делаете функцию (ну, на самом деле, уже сделали за вас, но не суть)
    2. Для того, чтоб код стал более понятным и сопровождаемым - функция объединяет кусок кода под осмысленным именем (правда, не в вашем случае - у вас метод с названием get почему-то что-то записывает).
    На кой фиг в этом коде класс - не понятно. Это как нам на первом курсе товарищ через ООП и полиморфизм 4 точки на экран выводил (буквально), надеясь, то этим объяснит полиморфизм...
     
    BAbl_gun нравится это.
  3. BAbl_gun

    BAbl_gun Новичок

    С нами с:
    25 апр 2020
    Сообщения:
    32
    Симпатии:
    2
    Благодарен за столь отчётливый ответ. Причиной тому почему я использую класс это желание познать как эта шайтан машина работа на таких детских примерах, выстроить в голове логику всего происходящего, разделение где что должно находиться для правильного функционирования.
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    Разделение делается не для правильного функционирования, а чисто для удобства программиста. Можно написать тонну говнокода, идеально функционирующего при этом. Open Cart - яркий пример. Лезешь в код - жуть, жуть и ещё раз жуть, благо, что простой достаточно. Но при этом один из лучших движков интернет магазинов.
     
  5. BAbl_gun

    BAbl_gun Новичок

    С нами с:
    25 апр 2020
    Сообщения:
    32
    Симпатии:
    2
    То есть если пишешь код для себя то можно делать оливье, а не подшубу))
     
  6. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    То есть, правильное функционирование и хороший стиль кода - это две разные вещи.
    --- Добавлено ---
    Но если ты в свой же говнокод через пол года залезешь, чтоб что-то изменить, то сразу горько пожалеешь, что не писал нормально. Суть в этом. По ООП, если с пониманием собственно языка нету проблем, лучший источник для PHP - книга Мэтта Зандстры. Погугли по имени, не помню наизусть название
     
  7. kobzar

    kobzar Новичок

    С нами с:
    24 янв 2019
    Сообщения:
    16
    Симпатии:
    0
    И даже в 2021 году?
     
  8. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    А что, в 2021 совершили какую-то революцию в паттернах проектирования? Да, у пыха несколько плюшек появилось, скорее всего, скоро выйдет очередное издание книги с описанием плюшек, но в целом суть ООП осталась та же