• 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