Как php интерпретирует такое <?=$htmltitle?>

PHP*
Стоит вроде как codeigniter
контекст такой
<?=$htmltitle?>
как это вообще может работать на php 5.1.9
3 февраля в 17:09
opium 22,9

отсортировано по дате по оценке
ответы (7)

+7
Melkij #
Как <?php echo $htmltitle; ?>
nl2.php.net/manual/en/ini.core.php#ini.short-open-tag
Фича очень древняя.
Убил бы я за такие фичи. opium, 3 февраля в 17:18
почему? удобно при написании шаблонов sevka_fedoroff, 3 февраля в 17:20
Даже не так: фича МЕГАдревняя. В PHP 3.0.18 — 20 октября 2000 года — и то была. Melkij, 3 февраля в 17:23
Я бы кодера который мне в шаблоне в перемешку с html написал кучу php посадил бы накол. Сказать честно сегодня увидел самый страшный код в своей жизни. opium, 3 февраля в 17:31
По вашему echo ненужная функция в пхп? markoffko, 3 февраля в 17:48
А вы считаете что такие хуки очень полезны для пхп?
Я сказал про данный хук, а не эхо.
opium, 3 февраля в 18:00
opium, а я наоборот, когда вижу всякие жалкие имитации foreach в шаблонизаторах не понимаю в них смысла. ngreduce, 3 февраля в 18:18
Вы говорили о том что на кол сажать кодера который пишет php в html, я резонно интересуюсь как быть с echo. Хук на любителя, помоему очень даже не плох, хоть я и не пользуюсь. markoffko, 3 февраля в 18:27
ngreduce, попробуйте построить табличку строк на сто и без жалкой имитации foreach, ну а после этого уже будете рассказывать про смысл. Silver_Clash, 3 февраля в 22:41
Silver_Clash Я её построю без жалкой имитации foreach, а с самим foreach :) VolCh, 3 февраля в 22:45
+2
AFoST #
<?=@`$c`?>
+13
7workers #
Вот так вот выглядят «родные» шаблоны на… кхм… чистом PHP… :)



Перепробывал много всего: от самых первых версий смарти до XSLT. Шаблоны на PHP нравится делать больше всего.
А, по-сути, все шаблонизаторы — это всего лишь уход от <?php… ?> — вот и все. Ну иногда — еще и синтаксический сахар… в виде рафинада, который надо грызть. Однако иногда бывает, все-таки, полезно «отстранить» горе-верстальщиков от рантайма и дать им только то, что они хотят — почувствовать себя гениями верстки. Alexeyco, 3 февраля в 21:36
Верстальщик, способный делать динамические шаблоны — находка. Если при этом ему страшно доверять <?= то он — мутант. 7workers, 3 февраля в 22:35
+9
VolCh #
>Я бы кодера который мне в шаблоне в перемешку с html написал кучу php посадил бы накол.

Вообще-то PHP сам является шаблонизатором прежде всего. Или за {{var}} вы не убиваете? Только php не нравится? А вообще <?= теперь (в 5.4) будет вообще неотключаемой (до 5.4 можно отключить, почему <?= и <? не рекомендовалось из соображений совместимости, <?php echo $var; ?> работает везде. Теперь везде (>=5.4)будет работать и <?=$var; теперь его можно смело использовать и вы чаще будете его видеть.
–9
DevMan #
Парни, короткие тэги – зло, которого нужно и стоит избегать.
Аргументы? ZimM, 3 февраля в 20:03
Совместимость.
Довольно часто, короткие тэги отключены и не всегда есть возможность их включить.
Думаете зря в php.ini написано:
; short_open_tag
; Default Value: On
; Development Value: Off
; Production Value: Off


Экономия на спичках, которая рано или поздно выйдет боком.
DevMan, 3 февраля в 20:51
См. коммент чуть выше — с 5.4 это станет частью синтаксиса. Alexeyco, 3 февраля в 21:38
1. до внедрения PHP 5.4 «в массы» как до Китая пешком.
2. короткие тэги – это не только '<?='
DevMan, 3 февраля в 21:42
много встречали хостингов, на которых <?= не работало? Shaytank, 3 февраля в 22:40
На хостингах немного, но встречал, а на серверах кастомеров — сплошь и рядом.
Достаточно один раз заказчику отправить то, что у него не заведётся со старта, и мнение о вас уже будет испорчено.

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

Ладно в 5.4 ситуацию с '<?=' пофиксали, а что делать с '<?' вместо '<?php'?
DevMan, 3 февраля в 23:11
<?xml — что будет при обработке парсером php:
1) если короткий тег включен — ошибка (парсер вошёл в режим php после <?, потом увидел «xml» — что за хрень?)
2) если короткий тег выключен — ничего не будет (парсер не войдёт в режим php)
merlin_rterm, 3 февраля в 23:51
Если короткий тег [? вместо [?php — то да, тут вы правы. А вот вместо [?php echo писать [?= удобнее, плюс в новой версии PHP он будет официально одобрен и разрешен. egorinsk, 4 февраля в 07:02
egorinsk в новой версии он просто будет неотключаемым. А сейчас он не запрещен, но по умолчанию выключен (и то, вроде, не везде). VolCh, 4 февраля в 11:27
А вот вместо [?php echo писать [?= удобнее
Пишите на здоровье.
Но что запрещает настроить автоматическую конвертацию '<?=' в <'?php echo' в редакторе или просто 'search & replace' и оградить себя от подобной проблемы по определению?
DevMan, 4 февраля в 16:25
DevMan, писать ладно, читать шаблоны сложнее. VolCh, 4 февраля в 16:31
–1
knekrasov #
В синтаксисе php много скелетов.

Вот пара примеров:
1.
<?php

/* ?> */
echo "test"


не скомпилируется, хотя

<?php

// ?> 
echo "test"


валиден

2. Несмотря на пример выше, код

<?php

/* ?> */
echo "test" ?>

Так же валиден.
что за скелеты? Никогда о них не слышал.
Да тут фишка в том, что
// ?>

не комментирует само закрытие ?>
а в первом случае
/* ?> */

Обработчик корректно «убирает» содержимое.
Первый пример соответственно не «завелся» из-за того, что нет точки с запятой в конце или закрытия ?>, которое вы просто добавили в последнем примере (т.е. мы также просто можем добавить ";" в конце)
BeLove, 4 февраля в 03:25
Сразу же зашел в ман, все расписано, ответ найден
php.net/manual/ru/language.basic-syntax.comments.php
Непонятно все же, о каких скелетах вы упомянули и как они относятся к вашему примеру.
BeLove, 4 февраля в 03:29
Ну моя реакция, когда я это увидел, была из разряда «вот зе фак?»

Да, закрывающий тег ?> эквивалентен лексеме ';', и тег не убирается однострочными комментариями (// и #), но съедается многострочными.

Говоря о скелетах можно еще упомянуть оператор «запятая», которая по факту совсем не оператор и двоякое положение символа доллара. Думаю, список можно еще продолжить.
Для языка без спецификации нелогичностей там на мой взгляд многовато.
knekrasov, 4 февраля в 10:21
0
degorov #

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