Help:Parser functions in templates/pt

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 caso ( , exemplo B), em que o parâmetro é passado e vazio, é frequentemente a forma desejada para lidar com as situações em que o parâmetro existe, mas consiste só de espaço vazio.

Testar e passar parâmetros indefinidos (não passados)
To distinguish a possibly empty parameter from an unspecified, one, compare it to itself using  and different defaults. What the defaults are does not matter as long as they are different, so they are typically chosen to be short. The following all work equivalently:



Em casos raros, uma predefinição pode comportar-se de formas diferentes quando não é passado um parâmetro e quando este é passado mas está vazio. Se a predefinição for usada dentro de uma segunda predefinição (que use os mesmos parâmetros e com o mesmo nome), uma forma de garantir que os parâmetros não passados continuam indefinidos é a seguinte (a técnica também funciona para 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