2009-10-20 4 views
1

Possible Duplicate:
Are PHP short tags acceptable to use?<? Php vs <? ...Это имеет значение?

<?php 
    //Some code 
?> 

или

<? 
    //Some code 
?> 

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

обновление Спасибо за ответы ...

  1. Я понятия не имел, что они были названы короткие теги (следовательно, почему я не нашел дубликат SO вопрос)
  2. я имел Не знаю, была ли определенная опция конфигурации сервера, чтобы разрешить/запретить короткие теги.

Еще раз спасибо

+0

Dupe: http://stackoverflow.com/questions/200640/are-php-short-tags-acceptable-to-use –

+0

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

+0

Это не точный дубликат. – erenon

ответ

10

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

Это еще одна проблема целиком, но связанная. Если вы пытаетесь сгенерировать определенные типы файлов с PHP (XML - это кандидат, который чаще всего подходит для меня), то наличие коротких тегов может быть проблемой. Например, следующая ошибка синтаксиса PHP:

<?xml version="1.0" ?> 

Вместо этого вы должны написать следующее на сервере, который имеет короткие тег включено:

<?php echo '<?xml version "1.0" ?>'; ?> 

Г!

+0

Необычно видеть, что короткие теги отключены. Разве они никогда не объясняли, почему они отключены (или почему это невозможно)? Я полагаю, что * может * быть хорошим, чтобы заставить команду использовать только метод ' alex

+5

Я соглашусь с тем, что подавляющее большинство из них разрешено. Но на самом деле, единственная причина использовать их - это лень. Я предпочитаю использовать «длинную» версию. Лично я обычно отключил их на своих серверах dev, чтобы поймать любые сторонние скрипты, которые я использую для их использования. В моем довольно общем опыте это обычно не является хорошим первым знаком об общем качестве сценария, если они его используют (ленивы, не знают о вещах, какими бы они ни были). –

+0

@Matthew Полностью согласен с вами. – alex

0

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

Edit:

Забыл сказать, что вы должны включить короткую руку в php.ini

+0

Это имеет значение, поскольку это вопрос конфигурации сервера. Я работаю на некоторых серверах, где вторая версия не запускалась. –

+0

Да, забыл сказать, что вам нужно включить его. – lemon

0

закрывающая скобка не является обязательным

+0

Только если ничего не осталось после PHP-кода, что в этом вопросе не указано/не имеет значения. – deceze

+0

Это относится только к самому последнему блоку кода PHP в файле. – alex

+0

@deceze: ofcourse – Natrium

0

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

4

Если ваш проект может быть развернут на разных серверах (программное обеспечение с открытым исходным кодом, например), лучше всегда использовать <?php

Однако, если вы похожи на меня, и всегда стремиться к максимальной мобильности, используйте <?php, даже если вы не уверены, что ваше программное обеспечение когда-либо покинет ваш сервер. Большинство серверов имеют короткие теги.

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

0
<? ?> 

короткие теги, если короткие теги выключены, это не сработает.