PHP echo vs PHP короткие теги
они равны в безопасности? Мне сообщили, что с помощью
<?=$function_here?>
был менее безопасным, и что это замедляет время загрузки страницы. Я строго предвзято отношусь к использованию echo.
Какие преимущества/недостатки?
7 ответов:
<?
и<?=
называются короткими открытыми тегами и не всегда включены (см.short_open_tag
директива) с PHP 5.3 или ниже (но начиная с PHP 5.4.0,<?=
всегда доступен).собственно, в php.ini-production file поставляется с PHP 5.3.0, по умолчанию они отключены:
$ grep 'short_open' php.ini-production ; short_open_tag short_open_tag = Off
таким образом, использование их в приложении, которое вы хотите распространять, может быть не очень хорошей идеей: ваше приложение не будет работать, если их нет включен.
<?php
, С другой стороны, не может быть отключен-так что безопаснее всего использовать этот, даже если он дольше писать.
Кроме того, что короткие открытые теги не обязательно включены, я не думаю, что есть большая разница.
Эхо, как правило, просто лучше использовать, потому что...
- Он поддерживает хороший стиль программирования.
- Он не может быть выключен в PHP.ini (короткие теги могут быть)
короткие теги будут удалены в PHP 6)но, как правило, они одинаковы. Смотрите также:
помимо всей полурелигиозной дискуссии о том, является ли использование коротких тегов хорошей идеей и следует ли ее считать устаревшей, первоначальный вопрос заключался в том, насколько безопасно или небезопасно их использовать.
проще говоря, если вы используете короткие теги на сервере, который их не поддерживает, могут быть открыты части вашего PHP-кода, которые можно считать уязвимостью безопасности.
http://php.net/manual/en/language.basic-syntax.phpmode.php состояния:
начиная с PHP 5.4, короткий тег echo всегда распознается и действителен, независимо от
short_open_tag
настройка.
short_open_tag
выкл или вкл больше не имеет значения.Так что теперь вы можете, не беспокоясь, поставить теги, как это в ваших шаблонах:
<?= (($test) ? "val1" : "val2") ?>
Теперь это официально, "короткий Эхо-тег" - это что-то совсем другое, чем "короткая бирка".
просто для объявления другого источника PSR:http://www.php-fig.org/psr/psr-1/
PHP код должен использовать длинные теги или короткие теги Эха; он не должен использовать другие варианты тегов.
задание:
<?php ?> and <?= ?>
Так почему бы им просто не удалить опцию отключения короткого открытого тега и не включить его по умолчанию.
Это очень опасный ход PHP. Причина в том, что если вы поместите свой существующий код с короткими тегами на сервер PHP6 и кто-то просмотрит эту страницу, они получат исходный код, загруженный в их браузер, который вы можете просмотреть. Это может серьезно убить PHP.