PHP шаблонный метод? - PullRequest
       0

PHP шаблонный метод?

2 голосов
/ 06 марта 2012

Чувак, я могу поклясться, что где-то видел, полезный синтаксис для сокращения конструкции <?php echo $var ?>, и я думаю, что это было <?=$var?>, но это не работает. Я искал около получаса сейчас, но не могу найти веб-сайт, который рассказал мне об этом, и я не могу определить правильный синтаксис.

У меня галлюцинации или действительно такой синтаксис?

<div style="background-color:<?=$backgroundColorFromPhp?>">
    Hello <?=$name?>!
</div>

Ответы [ 5 ]

6 голосов
/ 06 марта 2012

PHP имеет директиву short_open_tag в php.ini, которая включает этот синтаксис:

<? PHP code here; ?>

вместо <?php PHP code here; ?>.

Он также включает

<?= variable ?>

как сокращение для <? echo variable; ?>.Документы отмечают, что начиная с PHP 5.4.0 <?= будет включено независимо от значения short_open_tag.

Очень похоже на asp_tags.Он включает классический синтаксис в стиле ASP:

<% PHP code here; %>
<%= variable %>

, из которого и произошел сокращенный синтаксис.Примечание: в классическом ASP <%= ... заменит довольно многословную форму:

<% Response.Write variable %>
2 голосов
/ 06 марта 2012

Когда включен параметр short_open_tag,

<?= $backgroundColorFromPhp ?>

является ярлыком для

<?php echo $backgroundColorFromPhp; ?> 

однако, если short_open_tag отключен,

<?= $backgroundColorFromPhp ?>

также будет отключено (до PHP 5.4).

1 голос
/ 06 марта 2012

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

1 голос
/ 06 марта 2012

Да, это правильно, учитывая некоторые предостережения.

Во-первых, вы должны иметь короткие теги на . По моему опыту, это конфигурация по умолчанию, как отмечено в документации выше;

Во-вторых, вам нужно проанализировать файл с помощью PHP. Если файл является .html файлом, он не будет автоматически проанализирован механизмом php. Вам нужно как-нибудь запустить его или сказать php, что он читает .html файлы по умолчанию.

Наконец, я хотел бы добавить туда эту end statement точку с запятой (делая ее <?=$name;?>), но я считаю, что это предпочтение.

0 голосов
/ 06 марта 2012

То, что вы пытаетесь сделать, должно быть сделано следующим образом

     <div style="background-color:<?=$backgroundColorFromPHP ?>">
          Hello <?=$name ?>!
    </div>

Короче, оставьте пробел после последней ? отметки

И, пожалуйста, строго избегайте повторения вашегоСодержание HTML.Это просто плохой стиль.Всегда держите динамику вашего php-кода отдельно от HTML-элементов.

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