Foros del Web » Programando para Internet » PHP »

No entiendo que hace realmente este pedazo de código

Estas en el tema de No entiendo que hace realmente este pedazo de código en el foro de PHP en Foros del Web. Hola, bueno necesito entender que hace este código porque necesito re-hacerlo pero el tal "$this->" que aparece no lo entiendo, estuve leyendo algo que dice ...
  #1 (permalink)  
Antiguo 19/09/2011, 21:18
 
Fecha de Ingreso: agosto-2011
Mensajes: 20
Antigüedad: 12 años, 8 meses
Puntos: 0
Pregunta No entiendo que hace realmente este pedazo de código

Hola, bueno necesito entender que hace este código porque necesito re-hacerlo
pero el tal "$this->" que aparece no lo entiendo, estuve leyendo algo que dice que es un puntero dentro de una clase pero no quede muy claro... me pueden explicar mas o menos que hace para re-hacerlo de una forma mas simple??

como puedo cambiar ese $this-> por algo mas simple?


Código PHP:
Ver original
  1. function introduce_producto($id_prod,$nom_prod,$precio_prod, $cantidad){
  2.          $this->array_id_prod[$this->num_productos]=$id_prod;
  3.          $this->array_nombre_prod[$this->num_productos]=$nom_prod;
  4.         $this->array_precio_prod[$this->num_productos]=$precio_prod;
  5.                 $this->array_cantidad_prod[$this->num_productos]=$cantidad;
  6.         $this->num_productos++;
  7.                
  8.     }

Olvide mencionar que lo quiero re-hacer porque esta función hace que solo me imprima el último valor que obtengo de una lista de un while($row= mysql_fetch_array($query)) que hago, si elijo un elemento anterior al último, me lo sobre-escribe y me imprime el último de la lista.

Ojala me puedan ayudar
estaré atento a sus respuestas, saludos!!
  #2 (permalink)  
Antiguo 19/09/2011, 21:30
Avatar de xalupeao  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 15 años, 11 meses
Puntos: 12
Respuesta: No entiendo que hace realmente este pedazo de código

por lo que veo en tu clase debes tener "propiedades" que son array, algo asi

var $array_precio_prod = array();

o

private $array_precio_prod = array();

entonces lo que hace

$this->

es utilizar esas propiedades de la clase. Solo debes leer un poco sobre POO y quedas listo.
__________________
Hosting en Chile en Silverhost - La solución en Hosting en Chile.
  #3 (permalink)  
Antiguo 19/09/2011, 22:15
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: No entiendo que hace realmente este pedazo de código

$this-> es para acceder a métodos y/o variables dentro de una clase, te muestro un ejemplo:

Código PHP:
Ver original
  1. class Foo {
  2.     private $foo = 'Ejemplo';
  3.  
  4.     public function TomaFoo() {
  5.         // Funcion que toma una variable dentro de la clase
  6.         return $this->foo; //Nota el uso de this. Accede a la var privada $foo
  7.     }
  8.  
  9.     private function Bar($nombre) {
  10.         return "Hola, $nombre";
  11.     }
  12.  
  13.     public function Saluda($nombre) {
  14.         return $this->Bar($nombre); // Nota el uso de this, en este caso, para acceder a una funcion)
  15. }
  16.  
  17. $ex = new Foo;
  18.  
  19. echo $ex->TomaFoo(); // En este ejemplo, $ex es como un $this, pero con $ex se refiere al objeto instanciado
  20.  
  21. echo $ex->Saluda('Ricardo');

De una u otra forma, te recomiendo leer sobre POO, es muy interesante :D
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #4 (permalink)  
Antiguo 20/09/2011, 00:21
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: No entiendo que hace realmente este pedazo de código

Solo por no dejarte con la duda:

Ese codigo es parte de una clase (programacion orientada a objetos aka "POO") y el metodo que muestras (funcion), ya notaste el nombre que tiene? introduce_producto, es decir, agregara un elemento al final de $this->array_precio_prod y siempre sera ese su comportamiento, si de alguna forma modificas o tratas de modificar $this->num_productos seguramente obtendras resultados inesperados (justo como te esta pasando).

Bien, ahora, lo que tu necesitas es modificar o mostrar productos que tienes en $this->array_precio_prod?

Entonces busca en la clase los metodos adecuados, casi tengo la certeza de que habra: modifica_producto(), muestra_producto(), elimina_producto() o nombres similares.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 20/09/2011, 07:04
 
Fecha de Ingreso: agosto-2011
Mensajes: 20
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: No entiendo que hace realmente este pedazo de código

Muchas gracias!
Ahora entiendo bien el código y me doy cuenta que hay no esta mi problema (jajaja)
muchas gracias por su ayuda!

Saludos!

Etiquetas: mysql, realmente
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:48.