• 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