PHP TypeLang Help

Advanced Tags

The Advanced Tags are a small set of tags that were originally introduced by individual static analyzers — chiefly Psalm and PHPStan — to express things the classic phpDocumentor vocabulary never covered: purity, by-reference output parameters, how a closure is invoked, whether a class may grow magic members. Over time these spellings became common enough that both analyzers came to accept them without a vendor prefix, and that is exactly how they are grouped here.

In other words, this is the vendor-neutral middle ground: less universal than the Standard Tags, but no longer tied to a single tool's @psalm-* or @phpstan-* namespace either. You write @param-out, not @psalm-param-out; @pure-unless-callable-is-impure, not its prefixed form.

What Belongs Here

Like the standard set, every tag in this group is fully recognized: it parses into a dedicated, typed object, with any type it carries read through the same TypeLang grammar used everywhere else. Open any entry in the sidebar for its grammar, resulting object, and examples.

07 July 2026