За последние 24 часа нас посетили 81011 программистов и 6881 робот. Сейчас ищут 2433 программиста ...

Синтаксис

Тема в разделе "PHP для новичков", создана пользователем skipik, 24 мар 2018.

  1. skipik

    skipik Новичок

    С нами с:
    24 мар 2018
    Сообщения:
    8
    Симпатии:
    0
    Здравствуйте! Прошу сразу строго не судить за вопрос, воспользовался поиском перед созданием топика...
    Я только начал изучать php, во время изучения понял,что php код пишется "<?php *** ?>".
    Так вот вопрос, в системе Opencart очень много циклов в которых иной синтаксис написания
    "
    <?php foreach ($categories as $category) { ?> <== Почему здесь происходит закрытие скрипта?
    <?php if ($category['children']) { ?>
    "
    Искал в интернете, встречал стандартное написание:
    <?php
    if ($a > $b)
    echo "a больше b";
    ?>

    заранее спасибо большое за ответ, хорошего дня ;)

    P.S. Наверное для кого то этот вопрос окажется банальным, для откроет что то новенькое)
     
  2. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    потому, что так написали
    можно написать и не так, без закрытия
    это только автору ведомо, что там и где и зачем.
    Если между ?> и <?php ничего путного нет, то это лишено смысла и сделано по-глупости.
     
  3. skipik

    skipik Новичок

    С нами с:
    24 мар 2018
    Сообщения:
    8
    Симпатии:
    0
    Удалял, ради эксперимента)
    upload_2018-3-24_20-1-2.png
    Вот к чему приводит...
     
  4. skipik

    skipik Новичок

    С нами с:
    24 мар 2018
    Сообщения:
    8
    Симпатии:
    0
    upload_2018-3-24_20-4-44.png

    Вот кусок...
     
  5. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    183
    это для того, что бы хоть как-то отделить вёрстку
    --- Добавлено ---
    Когда ты будешь с помощью echo выводить вёрстку, где есть куча вложенных блоков и в эти блоки надо класть значение из php переменных (всякие классы, атрибуты), то будешь это всё разделять, с помощью точки, а это очень неудобно.

    И если будет где-то ошибка, то что бы найти её, уйдёт больше времени, пока разберёшься с этими кавычками и точками.
     
  6. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.012
    Симпатии:
    1.679
    Адрес:
    :сердА
    Пожалуйста, выкладывайте текст в текстовом виде. Не в картиночном, в текстовом, буковками.
     
  7. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    Так это в шаблонах. ПОтому что там помимо if ($category) есть ещё скрытый вывод, который тоже надо брать в операторные скобки:
    PHP:
    1. <?php foreach ($category as $cat) { ?>
    2.  Какая нибудь хрень, представляющая html, берётся в операторные скобки, если нужно выводить по условию или в цикле
    3. <?php } ?>
    Хотя лично я в таких случаях использую альтернативный синтаксис (хоть его и грозились одно время выпилить, в шаблонах он удобен):
    PHP:
    1. <?php foreach ($category as $cat): ?>
    2.    Вместо операторных скобок { можно использовать альтернативный синтаксис
    3. <?php endforeach; ?>
    Но вообще, прежде чем читать исходники Open Cart, неплохо бы что-нибудь почитать про язык. И не берите пример с Open Cart. Движок прикольный, но код там весьма неприятно при этом пахнет.
     
  8. skipik

    skipik Новичок

    С нами с:
    24 мар 2018
    Сообщения:
    8
    Симпатии:
    0
    Хорошо, в дальнейшем так и буду делать!)
    Пардон ;)
    --- Добавлено ---
    Согласен! Хоть и пахнет не очень приятно, но что сделать когда хочется практики с пользой?))
    Спасибо огромное за ответ!
     
  9. Sergey_Tsarev

    Sergey_Tsarev Активный пользователь

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    Прикольно :D как раз в данный момент устанавливаю Open Cart. И как раз задача покопаться в кишках его стоит.
    --- Добавлено ---
    Лучше фреймворк поковыряй, пользы больше будет.
     
  10. skipik

    skipik Новичок

    С нами с:
    24 мар 2018
    Сообщения:
    8
    Симпатии:
    0
    Что именно посоветуете?
     
  11. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    Нахрена ему фреймворк, если по таким базовым вещам вопросы возникают?

    @skipik, вот, ковыряй, пока не поймёшь: https://secure.php.net/manual/ru/langref.php
     
  12. Sergey_Tsarev

    Sergey_Tsarev Активный пользователь

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    Я в том смысле, что если что-то хочется поковырять - фреймворк будет полезнее чем движок. Ну, а для начала, на самом деле лучше попробовать сделать что-то своё, простое. Ставишь задачу, пробуешь её решить, гуглишь, и снова пробуешь решить))
     
  13. skipik

    skipik Новичок

    С нами с:
    24 мар 2018
    Сообщения:
    8
    Симпатии:
    0
    Базовые материал или нет, но в мануале который Вы скинули нет ответа по этой теме. Его я частенько посещаю...)
    Повторюсь, в интернете нет ответа на данный вопрос по синтаксису! Задал вопрос того что мне было не понятно "Почему так пишется", мне ответили я понял... В дальнейшем если у кого то будет вопрос подобного рода, сможет здесь найти.
    Всем огромное спасибо за дискуссию и за мой ликбез)
     
  14. skipik

    skipik Новичок

    С нами с:
    24 мар 2018
    Сообщения:
    8
    Симпатии:
    0
    И так же в самом начале PHP изучения пишут и проходят про даты "<?php echo(date('Y'))?>" не трудная штука, а на многих крутых сайтах (почему то я обращаю на это внимание...) стоит 2014-2017 года...)
    Это к вопросу о банальных вещах) Всё равно, спасибо огромное @mkramer за подробный ответ)
     
  15. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
  16. skipik

    skipik Новичок

    С нами с:
    24 мар 2018
    Сообщения:
    8
    Симпатии:
    0
    Вот я чилиец... В самом тексте про альтернативный синтаксис ничего не написано !Кроме как Вы писали в примере про endforeach... Только там endif...
    А вот в комментарии 9ти летней давности это есть:

    Код (Text):
    1. It seems to me, that many people think that
    2.  
    3. <?php if ($a == 5): ?>
    4. A ist gleich 5
    5. <?php endif; ?>
    6.  
    7. is only with alternate syntax possible, but
    8.  
    9. <?php if ($a == 5){ ?>
    10. A ist gleich 5
    11. <?php }; ?>
    12.  
    13. is also possible.
    14.  
    15. alternate syntax makes the code only clearer and easyer to read
    Теперь я запомню этот момент на дооолго)) Спасибо тебе, добрый человек))
     
  17. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    @skipik, да, все незаминусованные комменты читать обязательно на этом сайте.
     
  18. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753