PHP є однією з найбільш часто використовуваних мов програмування у веб-розробці. Однією з найважливіших особливостей цієї мови є те, що вона пропонує різні методи обмеження. Давайте коротко розглянемо відкриваючі та закриваючі теги PHP:

  • <?php ?>
  • <?= ?>
  • <? ?>
  • <% %>

Щоб ефективніше використовувати PHP, необхідно розуміти відмінності та важливість цих тегів. У цій статті ми навчимося ефективно використовувати теги PHP.

Чому ми не повинні використовувати короткі теги PHP?

Короткі теги PHP можуть бути більш корисними для полегшення та швидкості кодування. Однак на більшості хостингів і серверів він вимкнено за замовчуванням у конфігурації PHP.ini. У конфігурації PHP.ini для роботи цих коротких тегів short_open_tag опція повинна бути активована. Отже, єдиний метод, який точно працюватиме на кожному сервері PHP, це . Якщо ви плануєте розгорнути свій PHP на сервері, який ви не контролюєте, ви завжди можете це зробити <?php ?> Ви повинні використовувати підхід.

Короткий тег PHP Echo та PHP.ini

<?php echo() ?>

у PHP <?= тег у конфігурації PHP short_open_tag Його можна використовувати незалежно від того, увімкнено параметр чи ні, тому ви можете сміливо використовувати цей ярлик замість наведеного вище.
Якщо ви просто пишете код для себе та можете контролювати конфігурацію PHP, яку використовуєте, короткі теги можуть виявитися більш корисними. Але пам'ятайте про це <? ?> тег може конфліктувати з оголошеннями XML. Також <% %> Тег фактично відповідає стилю ASP.

Закриваючі теги PHP і можливі проблеми

Закриття чистого файлу PHP (наприклад, файлу, що містить лише визначення класу) ?> Додаючи тег, будьте обережні, щоб не залишати порожніх рядків. Хоча інтерпретатор PHP може безпечно «виконати» один символ розриву рядка після закриваючого тегу, інші розриви рядків можуть виводитися в браузер. Якщо ви потім пишете заголовки HTTP, все може стати ще більш заплутаним.

PHP PSR-2

Стандарт кодування PSR-2 є частиною стандартів кодування PHP PSR, створених для визначення найкращих практик у PHP. Стандарти кодування PSR-2 застосовуються лише до файлів, що містять код PHP. ?> рекомендує не використовувати закриваючі теги. Основна причина цієї рекомендації полягає в тому, щоб запобігти надсиланню в браузер таких символів, як пробіли або розриви рядків, випадково залишені після закриваючого тегу. У PHP, ?> Будь-який символ після тегу автоматично вважається частиною виводу HTML. Це може бути особливо проблематично під час обробки заголовків HTTP.

Непотрібні символи в кінці PHP-файлу можуть заважати правильній обробці заголовків HTTP. У протоколі HTTP будь-який вивід робить неможливим надсилання заголовків, оскільки заголовки мають бути завершені перед надсиланням вмісту. Це спричиняє проблему, відому як уже надіслані заголовки, яка може вплинути на такі дії, як початок сеансу, встановлення файлу cookie або переспрямування сторінки.

Тому PSR-2 рекомендує не використовувати закриваючий тег у файлах, що містять лише код PHP, щоб уникнути таких поширених помилок і зберегти чистоту коду. Такий підхід усуває можливі проблеми, які можуть виникнути через небажані пробіли або символи кінця рядка в кінці коду, і сприяє більш стабільній та безпомилковій роботі скриптів PHP.

PHP-теги та сумісність

При написанні веб-додатків для старих версій, закриття ?> html з тегами <!doctype> Будьте обережні, щоб не залишити новий рядок між тегами. Старіші версії IE можуть видавати різні помилки, якщо перед оголошенням doctype зустрічаються пробіли, зокрема символи нового рядка. Це не стосується нових версій IE та інших, більш просунутих браузерів. (Тобто для будь-якого браузера, крім IE.)