Estructuras De Datos. ARRAY Vs HASH Las variables de SmartHTML pueden almacenar cualquier información (textos, numeros, fechas, etc...), ya que no se especifica su tipo de datos al declararlas.

Adicionalmente, se pueden crear estructuras de datos usando tipos abstractos de datos, como ARRAY o HASH. Los dos tipos de variables sirven para contener una lista de datos pero de forma diferente.

Un ARRAY es una lista de datos ordenados, que tiene esta forma:

(valor1, valor2, valor3,?, valorN)

Se puede recorrer un array usando la instrucción eBD: FOREACH; se creará automáticamente la variable $iterator que nos devuelve el valor actual del vector. También podemos cambiarle el nombre a esta variable (ver FOREACH).

Un Hash es una lista de pares clave-valor, tiene esta forma:

(clave1 => valor1, clave2 => valor2, clave3 => valor3,?, claveN => valorN)

Es muy útil en el caso de que queramos guardar los datos objeto estructurado. Por ejemplo, los datos de una persona serian (Nombre => Juan, Apellido => García, TF => 941256489, etc.).

La única forma de acceder a los valores de un hash es usando la clave de cada uno de los campos. En caso de no conocer los valores de las claves, se puede usar la funcion KEYS que devuelve un array con las claves del HASH.

Ejemplo:

<eBD:KEYS HASH="objeto" ARRAY="claves"/>
<eBD:FOREACH ARRAY="claves" ITERATOR="k">
...
<eBD:SET VAR="valor" VALUE="@objeto{$k}"/>
...
</eBD:FOREACH>

O mas sencillo todavía:

<eBD:FOREACH KEYS="objeto" ITERATOR="k">
...
<eBD:SET VAR="valor" VALUE="@objeto{$k}"/>
...
</eBD:FOREACH>