(PHP) <? echo $a?> или <?=$a?>

slmark
Дата: 07.08.2006 12:44:30
Здравствуйте.
Ребята, подскажите, пожалуйста, разницу между отображением переменных
1. <? echo $a?> 
2. <?=$a?>

Есть ли какие-нибудь различия между этими выражениями и что предпочтительнее использовать.
Спасибо.
*
Дата: 07.08.2006 13:23:34
slmark
Есть ли какие-нибудь различия между этими выражениями
А на глаз не видно?
1024byte
Дата: 07.08.2006 13:23:45
Что то мне кажется что второе просто чушь какая-то.
slmark
Дата: 07.08.2006 13:28:33
Дело в том, что постоянно встречаюсь то с одним, то с другим выражением. Вот и возник вопрос...
1024byte
Дата: 07.08.2006 13:45:29
Никогда со вторым не сталкивался, поэтому так и думается.
Для вывода есть соответсвующие функции, всегда ими и пользовался.
А оператор присвоения как-то не при чем тут.
Пчеловод
Дата: 07.08.2006 13:47:33
slmark
Дело в том, что постоянно встречаюсь то с одним, то с другим выражением.

В одном скрипте или в разных? на асп похоже...
*
Дата: 07.08.2006 13:59:46
PS: вторая ссылка бесполезна - что-то я просмотрел в русском варианте - там тоже всё есть.
*
Дата: 07.08.2006 14:01:25
anvano
Дата: 07.08.2006 14:06:30
<?=$a?>

Это альтернативный синтаксис для более простой вставки вывода PHP переменных в HTML контексте

Читаем внимательно документацию:

Example 1.1. Ways of escaping from HTML
copy to clipboard
1.  <?php echo("if you want to serve XHTML or XML documents, do like this\n"); ?> 

2.  <? echo ("this is the simplest, an SGML processing instruction\n"); ?> 
   <?= expression ?> This is a shortcut for "<? echo expression ?>" 
    
3.  <script language="php"> 
       echo ("some editors (like FrontPage) don't 
             like processing instructions"); 
   </script> 

4.  <% echo ("You may optionally use ASP-style tags"); %> 
   <%= $variable; # This is a shortcut for "<% echo . . ." %>

The first way, <?php. . .?>, is the preferred method, as it allows the use of PHP in XML-conformant code such as XHTML. 

The second way is not available always. Short tags are available only when they have been enabled. This can be done via the short_tags() function (PHP 3 only), by enabling the short_open_tag configuration setting in the PHP config file, or by compiling PHP with the --enable-short-tags option to configure. Even if it is enabled by default in php.ini-dist, use of short tags are discouraged. 

The fourth way is only available if ASP-style tags have been enabled using the asp_tags configuration setting. 



Собственно указанные в вопросе оба способа вывода являются так называемыми short-tags (короткими, сокращенными тегами), относятся ко второму пункту и полностью идентичны. А рекомендуется использовать способ №1.

Там же в документации читаем замечание:

Note: 
Using short tags should be avoided when developing applications or libraries that are meant for redistribution, or deployment on PHP servers which are not under your control, because short tags may not be supported on the target server. For portable, redistributable code, be sure not to use short tags. 

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

--------------------------------------------------------------
Правильно заданный вопрос содержит в себе половину ответа