Все за и против <?=
А вообще лучше никак из предложенных способов, ибо нефиг мешать html и php.
На сколько я понял имелось ввиду шаблонизатор использовать, но в любом случае в шаблонизаторе такое будет использоваться.
А скорость выполнения кода отличается?
А вообще лучше никак из предложенных способов, ибо нефиг мешать html и php.
PHP собственно именно для этого и создавался. Мешать можно, но в разумных количествах и в нужных местах.
Конечно. Шаблонизатор будет намного медленнее. Вообще чем больше логики и абстракции - тем медленнее работает.
+1 за второй вариант.
есть index.php который подгружает нужные модули из /inc ... там всякое обрабатывается, и собирается в переменные (например $content).
И в самом конце index.php require("inc/index.inc"); который подгружает верстку страницы, и там в нужных местах расставлены:
<?= $content ?> - в месте под контент
<meta name="keywords" content="<?= $keywords ?>">
<meta name="description" content="<?= $description ?>">
эту мелочь таким образом весьма удобно выводить. Нотепад++ адекватно подсвечивает синтаксис, проблем с поиском нужного фрагмента нету...
хотя и не критичный
Это минус только в случае, если нет возможно сти настраивать пхп-шку самостоятельно
Так и есть, единственный раз когда я с ним столкнулся, так это на бесплатном хостинге.
о_О эт когда они успели? ты с magic_quotes не перепутал?
Ибо я спокойно юзаю их, и пхп-шечка ни слова мне не говорит..
http://www.php.net/manual/en/migration53.deprecated.php далеко ходить в гугл не надо... нету тут short_open_tag ....
Читай:
<?php echo $var ?> - правильно
<?= $var ?> - удобно
<?php echo $var ?> - правильно
<?= $var ?> - удобно
Я бы сказал так:
<?php echo $var ?> - работает везде и будет работать всегда
<?= $var ?> - удобно
я предпочитаю второй вариант.
<?php echo $var ?> - правильно
Почему этот вариант правильный а другой нет, ведь оба являются конструкциями языка? Или просто кто то однажды решил что это правильно и все с этим согласились?
Оператор GoTo тоже вроде является конструкцией во многих языках, однако немало чернил потрачено, чтобы донести до масс мысль, что сей оператор использовать нельзя. Так и тут. :)
GoTo оператор безусловного перехода который передает управление куда то на метку, но здесь же ничего никуда не передается а простой вывод без изменения потока обработки кода.
А правильный он потому, что работать будет всегда, в то время как второй вариант зависит от настроек.
И аналогия с гоу-ту плохая. так как за использывание кортких тэгов, никто не скажет, что ты никакущий программер.
Скорее всего те кто их не используют долго матерились когда после их использования на рабочем сервере узнавали о том что данная опция отключена и нет локального файла настроек.
Я думаю правильнее сказать так что:
<?php echo ; ?> будут работать везде, а
<?= ?> будут работать не везде, и используйте их на свой страх и в случае их не работсопособности прийдется потратить кучу времени на их замену.
Да речь то не про это. Речь про то, что не все встроенные конструкции языка являются кошерными. Так, например, когда я пишу в delphi, стараюсь почти никогда не использовать блок try..except..end ибо кошернее решать все с помощью условных операторов.
первый вариант ПРАВИЛЬНО действительно потому, что будет работать ВЕЗДЕ.
"Если работает при условиях - значит правильно" - неверная концепция.
Только сегодня создавал скрипт, вынимающий\собирающий дерево вложенных категорий с неограниченным вложением. Примерчик посмотрел здесь в статьях. Написал свои функции, вынимал и так и эдак, и только ветку выбранных категорий, и только подкатегории выбранной ветки и так и сяк и в профиль и а анфас...
Всё круто... Вот только позже в комментах прочитал "ваш скрип говно! зачем долбить базу рекурсивными запросами"... Мне стало грустно...
Придется переделывать: вынимать из базы ВСЕ каталоги, а потом средствами ПХП сортировать в массивах и выводить.
Вывод:
Первый вариант исполнения работает и работает отлично. Но семантически он кривой и ЗАДАЧА выполнена в неверном подходе, т.е. НЕПРАВИЛЬНО.
А ПРАВИЛЬНЫЙ путь - второй.
Оба варианта рабочие, оба справляются с задачей. но только второй - ПРАВИЛЬНЫЙ.
Давайте продолжим: при включённых шорттегах нельзя делать вставки XML, потому что <?xml примется за вставку PHP.
PS Предвидя "Он ещё не вышел", сразу отвечу. Вспомни (если застал) переход с 4ки на 5ку и регистр глобалс :)))
Так я ничего против не имею, если короткие тэги будут депрекейтед то и хорошо не будет возникать подобных вопросов и будет единственный вариант вывода (из 2х предложеных).
Но суть в другом иногда делаешь что то и думаешь что оно правильно, гордишся этим, а потом через время узнаешь что то что сделано ерунда, и есть лучше и проще реализация и наступает облом. Но к чему я веду, а веду к тому, что преобретается опыт и усовершенствуются свои подходы к реализации той или иной идеи. Вот и у меня настал такой момент когда я хочу раз и навсегда понять почему это хорошо а это плохо.
Значит можно подбивать итог, использование <?php echo ; ?> в отличие от <?= ?>:
- не требует установки опций;
- не возникает проблем у парсера когда встречается XML-ная разметка (<?xml ...).
Таким образом я назвал конкретные причины по которым лучше использовать <?php echo ; ?> а не <?= ?>.
P. S. Для работы с деревьями есть nested set