sale algo asi:
Código PHP:
$column = &$pntable['autonews_column'];
| |||
Se le denomina "referencia" .. al metodo de usar &valor ... En el manual de PHP: http://www.php.net/manual/es/language.references.php (mas teoria no sé .. no lo suelo usar .. deberia?) Un saludo, |
| ||||
Es lo que en C equivale a un "puntero" a un valor. Lo que está haciendo el código que publicaste, es que $column, pasa a ser un puntero ( o como lo llama la gente de PHP y como deberiamos llamarlo, referencia ) hacia el valor que se encuentra en $pntable['autonews_column']. De esa manera, cualquier cambio de valor que le hagas a la variable $column, también se reflejará en el array al que apunta. Te recomiendo que leas la documentación que te publicó Cluster ( y a Cluster le recomiendo que se la lea también, es una manera de no gastar tanto recurso al utilizar objetos ![]() Saludos. |
| |||
Vaya, antes que nada Bhonox este que estas preguntando es todo un tema es php, y a un que es un termino sencillo si suele ser un poco confuso, como quiera intentare explicarlo lo mas claro que pueda, claro sera una explicacion sencilla para mas detalles te sugiero al igual que Cluster que visites el manual para una lectura profunda sobre el tema. Bien, veamos en php puedes pasar el valor de una variable de dos formas una es mediante una copia y la otra por medio de referencias es decir si tenemos algo como esto: Código PHP: Código PHP: Código PHP: Y bueno en un momento le sigo por que tengo que hacer unas cosas.... |
| ||||
Como bien dijo pablo se usa generalmente para gastar menos recursos en OOP jeje simpre k se crea un objeto con new es conveniente usarlo: Código PHP:
__________________ Usuario registrado de Linux #288725 |
| |||
jeje .. pues ya me quedó claro .. ![]() Un saludo, |
| ||||
Se podria colocar este tema en las FAQ'S para su consulta ! !!! Para beneficio de el resto de los usuarios !! Al ser un tema muy interesante !! y de mucha utilidad !!! ![]() ![]() ![]()
__________________ No esperes a que tu Nación haga algo por ti !!! Mejor haz primero algo por tu Nación !!! México-WEB |
| ||||
bueno a mi tambien me quedo claro, aunque pense que era una respuesta mas sencilla pero al final sirvio para aprender ![]() Gracias a todos
__________________ Atte Real BHONOX Programador Cervecero! :borracho: Lenguajes vengan a MI!! |
| ||||
Cita: En PHP asi como otros lenguajes de scripting (Perl, por ejemplo) hay referencias, pero no hay punteros.Mensaje Original por Webstudio Es lo que en C equivale a un "puntero" a un valor. Lo que está haciendo el código que publicaste, es que $column, pasa a ser un puntero ( o como lo llama la gente de PHP y como deberiamos llamarlo, referencia ) hacia el valor que se encuentra en $pntable['autonews_column']. En C y Java hay punteros y referencias, pero no son conceptos intercambiables. Las diferencias, basicamente, son: Los punteros apuntan a una direccion de memoria. Las referencias "refieren" a una variable o constante (o funcion, u objeto o lo que sea) guardando la direccion de memoria del elemento al que esta referido. Modificando el valor de un puntero, se modifica la direccion a la que apunta, no el contenido de la direccion de memoria. Modificando el valor de una referencia, se modifican los datos a los que esta referenciado la referencia (a menos que este desreferenciada, claro ![]() Última edición por SpiceMan; 07/01/2003 a las 20:44 |
| ||||
(de el manual de PHP) Que son las referencias Las referencias en PHP son un metodo para acceder a los mismos contenidos de una variable mediante distintos nombres. No son como los punteros de C, son alias en la tabla de simbolos. Notese que en PHP, los nombres de variables y los contenidos de las variables son distintos, por lo que un mismo contenido puede tener distintos nombres. La analogia mas cercana son los nombres de archivos y archivos en UNIX - los nombres de variables son el listado de directorio, mientras que los contenidos de variables son los archivos en si. Las referencias se pueden pensar como si fueran hardlinks del sistema de archivos UNIX. |
| ||||
Ok, reconozco el error de que para hacer mas entendible algo, di un ejemplo que no era el más correcto. Ahora, SpiceMan (Hernán era no?), reconozco un puntero en C, pero una referencia en C no la llegué a utilizar... (creo). Que sería, el nombre de una función utilizado como puntero a misma? el nombre de un array utilizado como direccion del primer elemento, o es algo más de lo que me perdí ? Saludos, y gracias por aclarar este punto.! |
| ||||
Cita: Pues el unico error es que en Java no existen punteros, si en C/C++ pero java no los implementa por un problema de seguridad, ya que al ocupar applet seria muy inseguro acceder a los recursos de otro computador mediante la red, si Java usara punteros podria acceder a cualquier parte de la memoria de un pc, siendo esto inseguro. Bueno, solo era esa aclaracion para no confundir a otros programadores que tambine programen en esos lenguages.Mensaje Original por SpiceMan En C y Java hay punteros y referencias, pero no son conceptos intercambiables. Saludos |
| ||||
Chalito: hmm si, no conozco mucho de java, pero sabia que no habia punteros... se me chispoteo ![]() Webstudio: no, MMontes (Marcel Montes). de hernan no tengo nada XD... Puntero: int entero; int *punteroaentero = &entero; (& para obtener la direccion de memoria de puntero, como rvalue funciona de esa manera, no confundir con referencias); Referencia: int entero; int &referenciaapuntero = entero; (& como lvalue denota referencia, no estoy obteniendo la direccion de memoria. Tambien no hace falta ninguna operacion sobre la variable entero, con solo asignarla ya estoy referenciandola). Todo esto en C/C++, claro. |