As variáveis estudadas até agora eram definidas no código‑behind C# e depois usadas nos modelos. Na verdade você pode criar variáveis diretamente dentro do modelo usando a diretiva set.
1. Definir variáveis com #set()
Duas formas de declarar variáveis:
Método 1: definir variáveis antecipadamente no código backend C#/Java e ler no modelo;
Método 2: definir variáveis diretamente dentro do modelo com#set()(ponto principal desta lição)
#set($name = "hello foxdevelop.com")
#set($okay = "common baby")
#set($nameokay = "$name|$okay")Code language: PHP (php)
#set(variável = valor)aceita strings, números, arrays, propriedades de objetos e atribuições vindas de outras variáveis- Tipagem fraca, não precisa declarar o tipo da variável
2. Duas sintaxes e regras para renderizar variáveis
2.1 Formas básicas
$name: se a variável não existir, imprime o texto literal$name$!name: renderização silenciosa; retorna conteúdo vazio quando a variável falta (recomendado para evitar textos estranhos$xxxna página)- Sintaxe padrão recomendada:
${name}(chaves delimitam explicitamente o nome da variável)
2.2 Exemplo de problema de limite
#set($name = "hello")
$namehello × o motor interpreta como variável $namehello e não encontra
${name}hello √ correto: resolve $name e concatena o texto helloCode language: PHP (php)
3. Comentários de linha única ##
## Este é um comentário, não aparece na saída final
#set($name = "test") ## comentários no fim da linha também são suportadosCode language: PHP (php)
- O conteúdo dos comentáriosnão é enviado para a página renderizada;
- Não ficam visíveis no código‑fonte do navegador (são descartados durante o processamento do motor de modelos).
4. Tipos de atribuição suportados por #set
## Atribuição de string
#set($name = "hello world")
## Atribuir uma variável a outra
#set($obj= $name)
## Atribuir propriedades de objeto
#set($obj.Friend = "monica")
#set($obj.Blame = $whitehouse.Leak)
## Chamar método e atribuir seu retorno
#set($obj.Plan = $spindoctor.weave($web))
## Atribuição numérica
#set($obj.Number = 123)
## Atribuição de array
#set($obj.Say = ["Not", $my, "fault"])Code language: PHP (php)
5. Regras especiais para variáveis inexistentes
$sadfsdfsdCode language: PHP (php)
Quando o motor de modelo não consegue resolver a variável:
- Sintaxe normal
$sadfsdfsd: imprime literalmente o texto$sadfsdfsd - Usando
$!sadfsdfsd: retorna string vazia quando a variável não existe
Definir variáveis dentro do modelo
Previous: Sintaxe básica de templates