Salida variable
Por ejemplo, en el controlador asignamos valores a las variables de la plantilla:
$name = 'ThinkPHP';
$ this->assign('name',$name);
$this->display();
Entonces puedes usarlo en la plantilla:
¡Hola, {$nombre}!
El resultado de la compilación de la plantilla es:
Hola,!
De esta manera, se mostrará en la plantilla cuando se ejecute:
¡Hola, ThinkPHP!
[-more-]
Tenga en cuenta que no puede haber espacios entre { y $ en la etiqueta de la plantilla; de lo contrario, la etiqueta no será válida. Entonces, la siguiente etiqueta
¡Hola,{ $name}!
La variable de nombre no se generará normalmente, pero se generará directamente sin cambios:
¡Hola, { $name}!
La etiqueta inicial predeterminada de las etiquetas normales es { y la etiqueta final es }. Esto también se puede cambiar configurando TMPL_L_DELIM y TMPL_R_DELIM. Por ejemplo, definimos en el archivo de configuración del proyecto:
'TMPL_L_DELIM'=>'<{',
'TMPL_R_DELIM'=>'}>',
Entonces, la etiqueta de salida de la variable anterior debe cambiarse a:
¡Hola,<{$name}>!
Utilizaremos la definición de etiqueta predeterminada para explicar el siguiente contenido.
La salida de la variable de la etiqueta de plantilla difiere según el tipo de variable. Lo que generamos ahora es una variable de cadena. Si es una variable de matriz,
$data['name. '] = 'ThinkPHP ';
$data['email'] = 'thinkphp@qq.com';
$this->assign('data',$data) ;
Luego, en la plantilla podemos generar la siguiente manera:
Nombre: {$data.name}
Correo electrónico: {$data.email }
O también es válido el siguiente método:
Nombre: {$data['name']}
Correo electrónico: {$data['email' ]}
Cuando queremos generar una matriz multidimensional, a menudo usamos el último método.
Si la variable de datos es un objeto (y contiene dos atributos, nombre y correo electrónico), se puede generar de la siguiente manera:
Nombre: {$data:name}< / p>
Correo electrónico: {$data:email}
O
Nombre: {$data->name}
Correo electrónico: {$data - >correo electrónico}
Variables del sistema
A las variables de plantilla ordinarias se les debe asignar un valor antes de poder generarlas en la plantilla, pero no es necesario que las variables del sistema se generen directamente en la plantilla Las variables del sistema La salida generalmente comienza con {$Think, por ejemplo:
{$Think.server.script_name} // Salida $_SERVER['SCRIPT_NAME'] variable
{$Think.session.user_id } // Genera la variable $_SESSION['user_id']
{$Think.get.pageNumber} // Genera la variable $_GET['pageNumber'] p>
{$Think.cookie .name} // Salida $_COOKIE['name'] variable
Admite salida de $_SERVER, $_ENV, $_POST, $_GET, $_REQUEST, $ Variables _SESSION y $_COOKIE.
También puedes generar constantes
{$Think.const.MODULE_NAME}
o usarlas directamente
{$Think.MODULE_NAME }
Uso de los parámetros de configuración de salida:
{$Think.config.db_charset}
{$Think.config.url_model}
Idioma de salida Se pueden utilizar variables:
{$Think.lang.page_error}
{$Think.lang.var_error}
Uso de funciones
A menudo necesitamos usar funciones para las variables de salida de la plantilla. Puede usar:
{$data.name|md5}
El resultado compilado es:
<. p> php echo (md5($data['name'])); ?>Si la función tiene varios parámetros que deben llamarse, utilice:
{ $create_time|date=" y-m-d",###}
Indica que la función de fecha pasa dos parámetros, cada parámetro está separado por una coma. El primer parámetro aquí es y-m-d y el segundo parámetro es. la variable create_time se generará previamente. Debido a que la variable es el segundo parámetro, se debe usar ### para identificar la ubicación de la variable. El resultado compilado es:
Si la salida de la variable anterior es el primer parámetro de la función definida más adelante, puede usarlo directamente:
{$data.name| substr=0,3}
Indica salida
Aunque también se puede usar: p>
{$data.name|substr=###,0,3}
Copiar el código
Pero esto es completamente innecesario.
También puede admitir el filtrado de múltiples funciones. Se pueden separar múltiples funciones por "|", por ejemplo:
{$name|md5|strtoupper|substr=0,3 }
El resultado compilado es:
Si crees que es más problemático escribir así, también puedes escribirlo directamente así:
{:substr(strtoupper(md5($name)),0, 3)}
Valor predeterminado
Podemos proporcionar un valor predeterminado para la salida variable, por ejemplo:
{$user.nickname|default="Este tipo es vago y no deja nada "}
Copiar código
La salida del valor predeterminado de las variables del sistema aún puede ser compatible, por ejemplo:
{$Think.get .name|default="El nombre está vacío"}
Copiar código
Los valores y funciones predeterminados se pueden usar al mismo tiempo, por ejemplo:
{$Think.get.name|getName|default="nombre está vacío"}
Usar operadores
Podemos usar operadores en la salida de la plantilla, incluido el soporte para "+" , "-", "*", "/" y "%" .
Por ejemplo:
Ejemplo de uso del operador
+ {$a+$b}
- {$a-$b}
* {$a*$b}
/ {$a/$b}
% {$a%$b}
++ {$a++} o {++$a}
-- {$a--} o {--$a}
Operación integrada {$a+$b *1$c}
Cuando se utilizan operadores, la sintaxis de puntos y el uso de funciones convencionales ya no son compatibles, por ejemplo:
{$user.score+10} // Incorrecto
{$user['score']+10} //Correcto
{$user['score']*$user['level']} // Correcto
{$user['score']|myFun*10} //Incorrecto
{$user['score']+myFun($user['level' ])} //Correcto