Эта функция идентична htmlspecialchars () всеми способами, кроме как с помощью htmlentites (), все символы, имеющие эквиваленты сущности HTML, переводятся в эти сущности.
Если вы хотите декодировать вместо этого (обратный), вы можете использовать html_entity_decode ().
blockquote>Пример:
echo htmlentities("&"); // &
, если вы прямо делаете это в браузере, вы должны использовать:
encodeURIComponent(string input);
Пример:
encodeURIComponent($.trim($("input[name=t-tim_rendered-"+id+"]").val().toString()));
tl; dr: "PECS" с точки зрения коллекции. Если вы только извлекаете элементы из общей коллекции, это производитель, и вам следует использовать extends
; если вы набиваете только только , это потребитель, и вам следует использовать super
. Если вы делаете и то, и другое с одной и той же коллекцией, вам не следует использовать extends
или super
.
Предположим, у вас есть метод, который принимает в качестве параметра набор вещей, но вы хотите, чтобы он был более гибким, чем просто принятие Collection
.
Случай 1: Вы хотите просмотреть коллекцию и сделать что-нибудь с каждым предметом.
Тогда список - это производитель , поэтому вам следует использовать Collection расширяет Thing>
.
Причина в том, что коллекция extends Thing>
может содержать любой подтип Thing
, и, таким образом, каждый элемент будет вести себя как Thing
, когда вы выполняете свою операцию. (На самом деле вы не можете ничего добавить к Коллекции Extends Thing>
, потому что во время выполнения вы не можете узнать, какой конкретный подтип Thing
содержит коллекция.)
Случай 2: Вы хотите добавить вещи в коллекцию.
Тогда список является потребителем , поэтому вам следует использовать Collection супер вещь>
.
Причина здесь в том, что в отличие от Коллекция расширяет Thing>
, Collection super Thing>
всегда может содержать Thing
независимо от фактического параметризованного типа.Здесь вам все равно, что уже есть в списке, если это позволяет добавить Thing
; это что ? super Thing
гарантирует.
Как я объясняю в свой ответ на другой вопрос, PECS - это мнемоническое устройство, созданное Джошем Блохом, чтобы помочь запомнить P производитель и расширяет
, C на потребителе с выше
.
Это означает, что при передаче параметризованного типа методу создаст экземпляров
T
(они будут извлечены из него каким-то образом),? extends T
следует использовать, поскольку любой экземпляр подклассаT
также являетсяT
.Когда параметризованный тип, передаваемый методу, потребляет экземпляров
T
(они будут переданы ему для выполнения каких-либо действий),? super T
следует использовать, потому что экземплярT
может быть законно передан любому методу, который принимает некоторый супертипT
.Компаратор
может использоваться, например, вCollection
.? extends T
не будет работать, потому чтоComparator
не может работать сCollection
.
Обратите внимание, что обычно следует использовать только ? расширяет T
и ? super T
для параметров некоторого метода. Методы должны просто использовать T
как параметр типа для универсального возвращаемого типа.