- Podemos recuperar un HASH con todos los argumentos que hemos recibido en la página usando la variable global %_ARGS
Código SmartHTML
<eBD:SET VAR="args" VALUE="%_ARGS"/>
<eBD:KEYS HASH="args" ARRAY="claves"/>
<eBD:FOREACH ARRAY="claves" ITERATOR="k">
Valor de <eBD:OUT VALUE="$k"/> es <eBD:OUT VALUE="@args{$k}"/>
<br>
</eBD:FOREACH>
- Se pueden crear referencias a variables de tipo complejo (ARRAY,HASH) usando $ en vez de @
Código SmartHTML
<eBD:VAR NAME="lista" TYPE="ARRAY" />
<eBD:PUSH ARRAY="lista" VALUE="valor1"/>
<eBD:PUSH ARRAY="lista" VALUE="valor2"/>
<eBD:SET VAR="referencia" VALUE="$lista"/>
<eBD:FOREACH ARRAY="referencia">
<eBD:OUT VALUE="$iterator"/><br>
</eBD:FOREACH>
Resultado
valor1 valor2
- Una función puede devolver una referencia a una variable de tipo complejo.
Código SmartHTML
<!--codigo de la función get_listado -->
<eBD:VAR NAME="lista" TYPE="ARRAY" />
<eBD:PUSH ARRAY="lista" VALUE="valor1"/>
<eBD:PUSH ARRAY="lista" VALUE="valor2"/>
<eBD:RETURN VALUE="$lista"/>
<!-- codigo externo -->
<eBD:CALL FUNCTION="get_listado" VAR="referencia" />
<eBD:FOREACH ARRAY="referencia">
<eBD:OUT VALUE="$iterator"/><br>
</eBD:FOREACH>
**Resultado**
valor1 valor2
* El valor de un elemento de un ARRAY o un HASH puede ser una referencia a otra variable de tipo ARRAY o HASH.
Código SmartHTML
<eBD:VAR NAME="lista" TYPE="ARRAY" />
<eBD:PUSH ARRAY="lista" VALUE="valor1"/>
<eBD:PUSH ARRAY="lista" VALUE="valor2"/>
<eBD:VAR NAME="otra" TYPE="ARRAY"/>
<eBD:SET VAR="otra" INDEX="0" VALUE="$lista"/>
<eBD:SET VAR="copia" VALUE="@otra[0]"/>
<eBD:FOREACH ARRAY="copia">
<eBD:OUT VALUE="$iterator"/><br>
</eBD:FOREACH>
**Resultado**
valor1 valor2