Help:Parser functions in templates/pt-br

Ao aplicar funções do analisador sintático aos parâmetros das predefinições, pode usar uma barra vertical ("|") para fornecer um valor por omissão, que será adotado como valor se o parâmetro não for passado (estiver indefinido). Usado numa função #if, o texto não expandido do parâmetro indefinido é avaliado como verdadeiro, o que pode ser um resultado inesperado.




 * :;Exemplo A: :


 * :;Resultado: :




 * :;Exemplo B: :


 * :;Resultado: :

O segundo uso (, exemplo B) com padrão vazio presente é muitas vezes a forma desejada para lidar com situações em que existe um parâmetro, mas é composto apenas de espaços vazios.

Testar e passar parâmetros indefinidos (não passados)
Para distinguir entre um parâmetro passado mas possivelmente vazio e um parâmetro indefinido (não passado), compare-o a si próprio usando  e use "diferentes valores por omissão". Os valores por omissão usados são indiferentes desde que sejam distintos, portanto tipicamente usam-se valores curtos. Os seguintes exemplos são todos equivalentes:



Em casos raros, uma predefinição se comporta de maneira diferente quando um parâmetro não é especificado em relação a quando é especificado, mas vazio. Quando esta predefinição é usada por uma predefinição de envoltório (que usa o mesmo conjunto de parâmetros com nome), uma forma de assegurar que parâmetros indefinidos permaneçam indefinidos é a seguinte (a técnica também funciona com parâmetros numerados):





Se normal_parameter for passado e não estiver vazio,  recebe-o em todos os casos. Se normal_parameter for passado mas estiver vazio, e se não for passado,  recebe um normal_parameter vazio.

Em contraste, só se sensitive_parameter for passado definido,  receberá um parâmetro definido; se sensitive_parameter não for passado e estiver indefinido, o   altera o nome do parâmetro para sensitive_parameterNULL. Para que o comportamento seja o esperado, este nome de parâmetro com sufixo tem de não ter significado para.

Ver também

 * Extension:Loops#forargs
 * Extension:Loops#forargs
 * Extension:Loops#forargs