--
_______________________________________________________________
Has recibido este mensaje porque estás suscrito al Grupo "Mundo Visual
FoxPro" de Grupos de Google.
Para anular la suscripción a este grupo, envía un mensaje a:
mundovisualfox...@googlegroups.com
---
Has recibido este mensaje porque estás suscrito al grupo "Mundo Visual FoxPro" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a mundovisualfox...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
Hola Analyzer:
Respecto del uso de uno u otro, te doy un ejemplo:
Imaginate un método imprimir_pagina al que le pasás 3 datos (texto, tipo_hoja, copias)
y necesitás que te devuelva otros 3 datos (estado_impresion, paginas, nivel_tinta)
Como sabés, un método solo puede devolver un valor (numérico, fecha, carácter, objeto, etc) o como mucho una concatenación de valores, pero en una única cadena. ¿Qué pasa si necesitás que te devuelva más valores por separado? Lo que se hace es usar parámetros de "retorno", y para que estos puedan ser modificados por el método llamado, deben pasarse por referencia (como @variable)
Volviendo al caso del método imprimir_pagina del ejemplo, los primeros 3 parámetros se deben pasar por valor porque no te interesa (no querés) que su valor sea cambiado dentro del método, en cambio los otros 3 parámetros los enviás vacíos, porque esperás que el método te los complete con datos de verdad, para poder usarlos o presentarlos luego.
Por ejemplo: crea un programa llamado imprimir_pagina, así:
MODIFY COMMAND imprimir_pagina
Y dentro ponele este código:
LPARAMETERS tcTexto, tcTipo_hoja, tnCopias, @tcEstado_impresion, @tnPaginas, @tnNivel_tinta )
tcEstado_impresion = "OK"
tnPaginas = 3
tnNivel_tinta = 60
RETURN
Finalmente guardalo cerrando la ventana o con CTRL+W
Ahora, este método lo usarías así desde la ventana de comandos, luego de inicializar las variables y de setear los valores de entrada de a una línea por vez:
texto = "Este es un texto para imprimir"
tipo_hoja = "A4"
copias = 2
estado_impresion = ""
nivel_tinta = 0
paginas = 0
imprimir_pagina( texto, tipo_hoja, copias, @estado_impresion, @paginas, @nivel_tinta )
Si ahora escribís esto:
CLEAR
LIST MEMORY LIKE *
vas a poder ver que las últimas 3 variables que estaban vacías (estado_impresion, paginas, nivel_tinta) fueron rellenadas por el método con los valores "OK", 3 y 60.
Espero que ya te quede más claro.
Saludos.-
--
Has recibido este mensaje porque estás suscrito al grupo "Zorrosmexicanos" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a zorrosmexican...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a zorrosm...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/zorrosmexicanos?hl=es.
En PHP, las variables siempre se asignan por valor. Esto significa que cuando se asigna una expresión a una variable, el valor íntegro de la expresión original se copia en la variable de destino. Esto quiere decir que, por ejemplo, después de asignar el valor de una variable a otra, los cambios que se efectúen a una de esas variables no afectará a la otra.
PHP ofrece otra forma de asignar valores a las variables: asignar por referencia. Esto significa que la nueva variable simplemente referencia (en otras palabras, "se convierte en un alias de" ó "apunta a") la variable original. Los cambios a la nueva variable afectan a la original, y viceversa. Esto también significa que no se produce una copia de valores; por tanto, la asignación ocurre más rápidamente. De cualquier forma, cualquier incremento de velocidad se notará sólo en los bucles críticos cuando se asignen grandes matrices u objetos.