src/Helpers/Request/HtmlHelper.php
public function tag($name, $content = '', $options = [], $encoding = null)
    {
        $this->ensureTranslated($content);
        return $this->proxyWithCharset(__FUNCTION__, [$name, $content, $options, $encoding]);
    }
public function tag($name, $content = '', $options = [], $encoding = null)
    {
        $this->ensureTranslated($content);
        return $this->proxyWithCharset(__FUNCTION__, [$name, $content, $options, $encoding]);
    }
Generates a complete HTML tag.
@param string|bool|null $name the tag name. If $name is `null` or `false`, the corresponding content will be rendered without any tag.
@param string           $content the content to be enclosed between the start and end tags. It will not be HTML-encoded.
If this is coming from end users, you should consider [[encode()]] it to prevent XSS attacks.
@param array            $options the HTML tag attributes (HTML options) in terms of name-value pairs.
These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using [[encode()]].
If a value is null, the corresponding attribute will not be rendered.

For example when using `['class' => 'my-class', 'target' => '_blank', 'value' => null]` it will result in the
html attributes rendered like this: `class="my-class" target="_blank"`.

See [[renderTagAttributes()]] for details on how attributes are being rendered.

@param string           $encoding
@return string the generated HTML tag
@see beginTag()
@see endTag()
@see Html::tag()