Parse

PAD parses on the fly (on demand) it searches for the first }, then it takes the first { before it, and analyses it to see if it is a PAD tag or a PAD variable.

In below example, the {$myVar} part is parsed first and executed.

{pad myOption='{$myVar}', $xyz=789}
....
{/pad}

Lets assume {$myVar} has the value ABC, then the result will be below, and now the {pad} tag will be processed.

{pad myOption='ABC', $xyz=789}
....
{/pad}

Without quotes around {$myVar} the result is the same while $padProtectValues is on, the default: a field written into a tag's parameters is spliced in as a quoted string (a plain number as the number), so its value stays the text ABC - with it off, the value is read as the bare word below. Only a bare word written in the template itself, as below, is read as the PHP constant of that name when one is defined, and as the text when not - a quoted value is always the text

{pad myOption=ABC, $xyz=789}
....
{/pad}