Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo obtener la longitud de una matriz en Smarty

Cómo obtener la longitud de una matriz en Smarty

Como se ve en muchos materiales, cuando solicita la longitud de una matriz en Smarty, puede usar la llamada al método que agrega |count después de la matriz. Es decir, obtenga la longitud de la matriz mediante {array|count}. Pero cuando estaba escribiendo la plantilla hoy, descubrí que no podía obtener la longitud de la matriz, sino solo una cadena que devolvía la matriz. En otras palabras, sólo se puede devolver el resultado de {matriz}, pero no la longitud de la matriz.

Revise la carpeta smarty/plugins y descubra 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 puedes agregar @ delante del recuento para obtener la longitud de la matriz correctamente. Al profundizar en 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 nombre del método precedido por @. Por lo tanto, tomamos esta decisión:

Al llamar a una función definida en PHP en el ajustador de atributos de Smarty, se puede expresar agregando @.

1. Al probar el método de tipo de matriz, se descubrió que era incorrecto no agregar el símbolo @. Por ejemplo: para llamar al método de conteo de una matriz para averiguar la longitud de la matriz, puede llamar a

{array|@count

} para llamar al método final de la matriz para encontrar el último elemento de la matriz Se pueden pasar datos del grupo

{array|@end

}.

2. En la cadena de función relevante que se va a probar, se puede llamar normalmente a cualquier función con o sin @.

3. Otros no han sido probados cuidadosamente.