Cómo obtener la longitud de una matriz en Smarty
He visto en muchos materiales que cuando se requiere la longitud de una matriz en Smarty, se puede usar la llamada al método de agregar |count después de la matriz. Es decir, obtenga la longitud de la matriz mediante {matriz|cuenta}. Pero cuando estaba escribiendo la plantilla hoy, descubrí que no podía obtener la longitud de la matriz, sino solo una matriz de cadena devuelta. Es decir, solo devuelve el resultado de {matriz}, pero no la longitud de su matriz.
Al mirar la carpeta smarty/plugins, encontramos que no hay ningún método relacionado con count. En otras palabras, count llama directamente al método en php.
Más tarde, a través de información en Internet, descubrí que se puede agregar @ delante del recuento para obtener correctamente la longitud de la matriz. Al revisar más a fondo el código fuente de Smarty, encontramos que cuando Smarty procesa el nombre del método después del ajustador de atributos, realizará un procesamiento especial en el precedido por @. Por lo tanto, haga un juicio:
Al llamar a una función definida en php en el ajustador de atributos en Smarty, se puede expresar agregando @.
1. Al probar métodos de tipo matriz, se encontró que se producirían errores si no se agregaba el símbolo @. Por ejemplo: si desea llamar al método count en una matriz para encontrar la longitud de la matriz, puede llamar a
{array|@count
} así, y si desea llamar al método final en la matriz para obtener la matriz. Cuando esté el último conjunto de datos, puede pasar
{array|@end
}.
2. Después de probar las funciones relacionadas con cadenas, descubrimos que se pueden llamar normalmente con o sin @.
3. Otros no han sido probados cuidadosamente.