Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Все за и против <?=

1.9K
25 октября 2010 года
Werky
129 / / 14.01.2006
Вот хотел уточнить для себя что лучше использовать <?= ?> или <?php echo ""; ?> хотелось бы услышать все за и против.
244
25 октября 2010 года
UAS
2.0K / / 19.07.2006
Второе, ибо первое при отключенных short_open_tags вроде как не работает.
А вообще лучше никак из предложенных способов, ибо нефиг мешать html и php.
274
25 октября 2010 года
Lone Wolf
1.3K / / 26.11.2006
Я туплю, но каким еще образом, если в выводе ВОБЩЕ не использывать PHP, вывести результат скрипта? Например выборку из БД?
1.9K
25 октября 2010 года
Werky
129 / / 14.01.2006
Цитата: Lone Wolf
Я туплю, но каким еще образом, если в выводе ВОБЩЕ не использывать PHP, вывести результат скрипта? Например выборку из БД?



На сколько я понял имелось ввиду шаблонизатор использовать, но в любом случае в шаблонизаторе такое будет использоваться.

А скорость выполнения кода отличается?

13
25 октября 2010 года
RussianSpy
3.0K / / 04.07.2006
Цитата: UAS

А вообще лучше никак из предложенных способов, ибо нефиг мешать html и php.



PHP собственно именно для этого и создавался. Мешать можно, но в разумных количествах и в нужных местах.

Цитата: Werky
А скорость выполнения кода отличается?



Конечно. Шаблонизатор будет намного медленнее. Вообще чем больше логики и абстракции - тем медленнее работает.

4
25 октября 2010 года
mike
3.7K / / 01.10.2002
Цитата: Werky
Вот хотел уточнить для себя что лучше использовать <?= ?> или <?php echo ""; ?> хотелось бы услышать все за и против.


+1 за второй вариант.

369
26 октября 2010 года
Kesano
451 / / 09.10.2007
Хмм... Я сейчас работаю с простыми дизайнами. Есть статическая часть, есть контенная, а есть мелкие элементы...
есть index.php который подгружает нужные модули из /inc ... там всякое обрабатывается, и собирается в переменные (например $content).

И в самом конце index.php require("inc/index.inc"); который подгружает верстку страницы, и там в нужных местах расставлены:
<?= $content ?> - в месте под контент
<meta name="keywords" content="<?= $keywords ?>">
<meta name="description" content="<?= $description ?>">
эту мелочь таким образом весьма удобно выводить. Нотепад++ адекватно подсвечивает синтаксис, проблем с поиском нужного фрагмента нету...
1.9K
26 октября 2010 года
Werky
129 / / 14.01.2006
Цитата: Kesano
эту мелочь таким образом весьма удобно выводить. Нотепад++ адекватно подсвечивает синтаксис, проблем с поиском нужного фрагмента нету...



да, но есть минус

Цитата: UAS
при отключенных short_open_tags вроде как не работает.



хотя и не критичный

274
26 октября 2010 года
Lone Wolf
1.3K / / 26.11.2006
Цитата: Werky
да, но есть минус
хотя и не критичный



Это минус только в случае, если нет возможно сти настраивать пхп-шку самостоятельно

1.9K
26 октября 2010 года
Werky
129 / / 14.01.2006
Цитата: Lone Wolf
Это минус только в случае, если нет возможно сти настраивать пхп-шку самостоятельно



Так и есть, единственный раз когда я с ним столкнулся, так это на бесплатном хостинге.

15
27 октября 2010 года
shaelf
2.7K / / 04.05.2005
Я за второй вариант (хоть он мне не нравится). В 5.3 по дефолту отключены short_tags и объявлены как depricated.
274
27 октября 2010 года
Lone Wolf
1.3K / / 26.11.2006
Цитата: shaelf
Я за второй вариант (хоть он мне не нравится). В 5.3 по дефолту отключены short_tags и объявлены как depricated.



о_О эт когда они успели? ты с magic_quotes не перепутал?

Ибо я спокойно юзаю их, и пхп-шечка ни слова мне не говорит..

15
27 октября 2010 года
shaelf
2.7K / / 04.05.2005
Нет, не путаю)) Попытался в гугле нарыть - инет тупит, да и времени нету.
274
27 октября 2010 года
Lone Wolf
1.3K / / 26.11.2006
Цитата: shaelf
Нет, не путаю)) Попытался в гугле нарыть - инет тупит, да и времени нету.



http://www.php.net/manual/en/migration53.deprecated.php далеко ходить в гугл не надо... нету тут short_open_tag ....

1.9K
27 октября 2010 года
Werky
129 / / 14.01.2006
Вобщем как я смотрю единого мнения нету, каждый выбирает то что ему по душе.
369
27 октября 2010 года
Kesano
451 / / 09.10.2007
Цитата: Werky
Вобщем как я смотрю единого мнения нету, каждый выбирает то что ему по душе.



Читай:
<?php echo $var ?> - правильно
<?= $var ?> - удобно

274
27 октября 2010 года
Lone Wolf
1.3K / / 26.11.2006
Цитата: Kesano
Читай:
<?php echo $var ?> - правильно
<?= $var ?> - удобно


Я бы сказал так:
<?php echo $var ?> - работает везде и будет работать всегда
<?= $var ?> - удобно

я предпочитаю второй вариант.

1.9K
27 октября 2010 года
Werky
129 / / 14.01.2006
Цитата: Kesano
Читай:
<?php echo $var ?> - правильно



Почему этот вариант правильный а другой нет, ведь оба являются конструкциями языка? Или просто кто то однажды решил что это правильно и все с этим согласились?

6
27 октября 2010 года
George
4.1K / / 05.01.2007
Цитата: Werky
Почему этот вариант правильный а другой нет, ведь оба являются конструкциями языка? Или просто кто то однажды решил что это правильно и все с этим согласились?


Оператор GoTo тоже вроде является конструкцией во многих языках, однако немало чернил потрачено, чтобы донести до масс мысль, что сей оператор использовать нельзя. Так и тут. :)

1.9K
27 октября 2010 года
Werky
129 / / 14.01.2006
Цитата: George
Оператор GoTo тоже вроде является конструкцией во многих языках, однако немало чернил потрачено, чтобы донести до масс мысль, что сей оператор использовать нельзя. Так и тут. :)



GoTo оператор безусловного перехода который передает управление куда то на метку, но здесь же ничего никуда не передается а простой вывод без изменения потока обработки кода.

244
27 октября 2010 года
UAS
2.0K / / 19.07.2006
Ну для примера хотя бы ман почитайте, почему там не рекомендуется использовать short_open_tags.
А правильный он потому, что работать будет всегда, в то время как второй вариант зависит от настроек.
274
27 октября 2010 года
Lone Wolf
1.3K / / 26.11.2006
ну просто "не приянто" у кого-то, где-то..
И аналогия с гоу-ту плохая. так как за использывание кортких тэгов, никто не скажет, что ты никакущий программер.
1.9K
27 октября 2010 года
Werky
129 / / 14.01.2006
Цитата: UAS
А правильный он потому, что работать будет всегда, в то время как второй вариант зависит от настроек.



Скорее всего те кто их не используют долго матерились когда после их использования на рабочем сервере узнавали о том что данная опция отключена и нет локального файла настроек.

Я думаю правильнее сказать так что:

<?php echo ; ?> будут работать везде, а
<?= ?> будут работать не везде, и используйте их на свой страх и в случае их не работсопособности прийдется потратить кучу времени на их замену.

6
27 октября 2010 года
George
4.1K / / 05.01.2007
Цитата: Lone Wolf
И аналогия с гоу-ту плохая. так как за использывание кортких тэгов, никто не скажет, что ты никакущий программер.

Да речь то не про это. Речь про то, что не все встроенные конструкции языка являются кошерными. Так, например, когда я пишу в delphi, стараюсь почти никогда не использовать блок try..except..end ибо кошернее решать все с помощью условных операторов.

369
27 октября 2010 года
Kesano
451 / / 09.10.2007
Верки.
первый вариант ПРАВИЛЬНО действительно потому, что будет работать ВЕЗДЕ.

"Если работает при условиях - значит правильно" - неверная концепция.
Только сегодня создавал скрипт, вынимающий\собирающий дерево вложенных категорий с неограниченным вложением. Примерчик посмотрел здесь в статьях. Написал свои функции, вынимал и так и эдак, и только ветку выбранных категорий, и только подкатегории выбранной ветки и так и сяк и в профиль и а анфас...

Всё круто... Вот только позже в комментах прочитал "ваш скрип говно! зачем долбить базу рекурсивными запросами"... Мне стало грустно...
Придется переделывать: вынимать из базы ВСЕ каталоги, а потом средствами ПХП сортировать в массивах и выводить.

Вывод:
Первый вариант исполнения работает и работает отлично. Но семантически он кривой и ЗАДАЧА выполнена в неверном подходе, т.е. НЕПРАВИЛЬНО.
А ПРАВИЛЬНЫЙ путь - второй.
Оба варианта рабочие, оба справляются с задачей. но только второй - ПРАВИЛЬНЫЙ.
7.9K
27 октября 2010 года
vasa_c
191 / / 05.04.2007
Закон действующий для всех форумов: чем несущественнее вопрос и чем меньше места занимают перечисления действительно явных "плюсов-минусов", тем больше флуда нафлудят.

Давайте продолжим: при включённых шорттегах нельзя делать вставки XML, потому что <?xml примется за вставку PHP.
15
28 октября 2010 года
shaelf
2.7K / / 04.05.2005
2Lone Wolf Попутал версию. Во многих дистрибах она вырублена по умолчанию, но для 5.3 она не деприкейтед. Посмотри ещё 6.0 )
PS Предвидя "Он ещё не вышел", сразу отвечу. Вспомни (если застал) переход с 4ки на 5ку и регистр глобалс :)))
1.9K
28 октября 2010 года
Werky
129 / / 14.01.2006
Kesano

Так я ничего против не имею, если короткие тэги будут депрекейтед то и хорошо не будет возникать подобных вопросов и будет единственный вариант вывода (из 2х предложеных).

Но суть в другом иногда делаешь что то и думаешь что оно правильно, гордишся этим, а потом через время узнаешь что то что сделано ерунда, и есть лучше и проще реализация и наступает облом. Но к чему я веду, а веду к тому, что преобретается опыт и усовершенствуются свои подходы к реализации той или иной идеи. Вот и у меня настал такой момент когда я хочу раз и навсегда понять почему это хорошо а это плохо.

Значит можно подбивать итог, использование <?php echo ; ?> в отличие от <?= ?>:

- не требует установки опций;
- не возникает проблем у парсера когда встречается XML-ная разметка (<?xml ...).

Таким образом я назвал конкретные причины по которым лучше использовать <?php echo ; ?> а не <?= ?>.

P. S. Для работы с деревьями есть nested set
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог