За последние 24 часа нас посетили 38034 программиста и 1811 роботов. Сейчас ищут 826 программистов ...

Как сократить запись кода?

Тема в разделе "PHP для новичков", создана пользователем Атм_Евгений, 29 июл 2017.

  1. Атм_Евгений

    Атм_Евгений Активный пользователь

    С нами с:
    21 июл 2017
    Сообщения:
    206
    Симпатии:
    5
    Здравствуйте!
    Чего то подзабыл, как реализовать следующее:
    Вот часть кода:
    Код (Text):
    1. ...
    2. else {
    3.             if ($key == 'num') {
    4.                 echo '<select name="'.$key.'" size="2">
    5.                     <option value="one">'.$el.'</option>
    6.                     <option value="two">'.$el.'</option>
    7.                     <option selected>'.$el.'</option>
    8.                     </select>';
    9.             }
    10. ...
    Как содержимое if , то что в скобках { } вынести отдельно, чтобы можно было просто составлять комбинации и вставлять это содержимое? Иначе кода много, путаюсь уже. Через константу или инклудом? Функцией возможно?
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Возможно. Но, у вас тут уже некорректный код. Все option будут иметь одинаковый текст. А последний не будет иметь значение.

    Ну а так, да, почему бы не сгенерить опшен функцией:

    PHP:
    1. function get_option($val, $text){
    2.    return '<option value="'.$val.'">'.$text.'</option>';
    3. }
    А там, где надо выбросить опшен:

    PHP:
    1. echo get_option('какое-то значение', 'какой-то текст');
    Если охота, можно echo в саму функцию зашить. Но это больше вкусовщина. Я просто предпочитаю, чтобы функция возвращала значение, а не сразу сбрасывала в буфер вывода. Мне такой подход кажется более упорядоченным.
     
    Maputo нравится это.
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.817
    Симпатии:
    1.333
    Адрес:
    Лень
    любой велосипед по своему хорош - главное задаваться вопросом "А не говнокод это ?"
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Это, кстати, первый звоночек, что что-то идет не так. В правильно структурированном проекте даже в сотнях тысяч строк должно быть нереально запутаться.
     
  5. Атм_Евгений

    Атм_Евгений Активный пользователь

    С нами с:
    21 июл 2017
    Сообщения:
    206
    Симпатии:
    5
    Да какая разница, что там с option, код еще не дописан, там другие значения будут. У меня часто повторяется один кусок кода, чтобы его не вставлять везде, а вынести отдельно и в место него писать "ссылку"?
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.817
    Симпатии:
    1.333
    Адрес:
    Лень
    require :)
     
  7. Атм_Евгений

    Атм_Евгений Активный пользователь

    С нами с:
    21 июл 2017
    Сообщения:
    206
    Симпатии:
    5
    require - это же содержимое файла вставляет. А в рамках страницы кода, чтобы где нибудь вверху файла прописал части кода, а затем в нужных местах в этом же файле вставляешь.
     
    #7 Атм_Евгений, 29 июл 2017
    Последнее редактирование: 29 июл 2017
  8. Атм_Евгений

    Атм_Евгений Активный пользователь

    С нами с:
    21 июл 2017
    Сообщения:
    206
    Симпатии:
    5
     
  9. Атм_Евгений

    Атм_Евгений Активный пользователь

    С нами с:
    21 июл 2017
    Сообщения:
    206
    Симпатии:
    5
    Спасибо! Так и сделал.
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Нет, require и include работают одинаково в плане сборки кода или вставки контента. Отличия там чуть иные.
     
  11. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.817
    Симпатии:
    1.333
    Адрес:
    Лень
  12. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Мифология же. Если бы так и было, то require не мог бы работать с переменными, только с константами. И, к примеру, autoload с ним было бы невозможно организовать. С каких пор мифы с левых сайтов, скопипащенные на SFO стали более достоверным источником, нежели актуальная официальная документация?
     
  13. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.817
    Симпатии:
    1.333
    Адрес:
    Лень
    да в spl_autoload нужно выводить напрямую содержимое нежели пользоваться require
     
  14. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Не понял, что ты имеешь ввиду.