Autor Tema: ¡No me entero de nada!  (Leído 1364 veces)

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
¡No me entero de nada!
« en: 10 de Mayo de 2010, 22:08:08 pm »

Por mas que intento leerme POO y asimilarlo, no soy capaz, es que no lo entiendo para nada. Como bien dicen algunos, POO puede ser el futuro
de PHP y no quiero quedarme atras. ¿Algun consejo por donde empezar o algun video tutorial?.

#Fdo. Physlet

Comunidad PHPeros

¡No me entero de nada!
« en: 10 de Mayo de 2010, 22:08:08 pm »

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:¡No me entero de nada!
« Respuesta #1 en: 10 de Mayo de 2010, 22:13:49 pm »
Estoy igual que tu...
No lo entiendo absolutamente nada...
xDD

por eso me busque cosas como VB, c++, C#
Twitter: @JoakoM010



Desconectado WildWolf360

  • PHPer@ Fijo
  • ***
  • Mensajes: 192
  • Karma: 8
    • Ver Perfil
Re:¡No me entero de nada!
« Respuesta #2 en: 10 de Mayo de 2010, 22:16:14 pm »
Google, mejor precio y calidad

Yo no me entero casi de php como pa meterme ahora con esto... Me suena a física cuántica, esa que se da cuando quieres trabajar en una central "Nucelar" (Gran Homer!)

Por cierto, ¿Porqué dicen que es "el PHP del futuro"?

Saludos

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re:¡No me entero de nada!
« Respuesta #3 en: 10 de Mayo de 2010, 22:16:34 pm »
Bueno, para empezar, POO no "puede ser" el futuro de PHP, POO es el PRESENTE de PHP, nosotros somos los que vamos atrás de la actualidad. Ahora mismo el mundo programa en POO y nosotros en estructural, pero es común porque estamos empezando. Precisamente lo que queremos es pasar a POO para estar mas a la orden del día y mas actualizados, pues sin duda somos nosotros los que vamos atrasados.

Siguiendo al tema, yo estaré encantado de responderte las preguntas que sepas siempre que me preguntes algo en concreto y no como esto.
¿Cual es tu duda? Al menos dime, ¿tu problema es de concepto? ¿o de sintaxis?
Quiero decir, nosotros planteamos un problema, y podemos resolverlo con programación estructural que es la que sabemos usar, ¿pero sabrías plantearlo al menos en POO? ¿o el problema es que no entiendes la sintaxis o como se ejecuta un código orientado a objetos?

En fin, define un poco tu problema, y yo si puedo te ayudaré encantado :)

Saludos
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
Re:¡No me entero de nada!
« Respuesta #4 en: 10 de Mayo de 2010, 22:25:06 pm »
La cosa de las clases, es que como algunos dicen que es el "futuro" del PHP (lo que como dice TLX, es erróneo, las clases son el presente de la programación PHP).

A mi parecer, las clases se han puesto de "moda" no solo porque sí, lo que yo imagino, es que las clases sirven para ir ayudándole a los usuarios para otros lenguajes que se trabajan practicamente que al 90% con clases (VisualBasic, C, C++...).

Ahora, al principio a mí se me hacía un lío, pero luego me leí este tutorial que está muy bien explicado (http://www.phperos.net/foro/index.php/topic,5093.0.html). También está el tutorial de TLX, que me ayudó a "reforzar" mi conocimiento de la POO (http://www.phperos.net/foro/index.php/topic,1470.0.html).

Espero que te ayude esta información ;).
Saludos.
- Moderador de PHP


Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:¡No me entero de nada!
« Respuesta #5 en: 10 de Mayo de 2010, 22:27:31 pm »

Pues TLX, la cosa es que ¡ no entiendo nada !. He mirado en google, en PHPeros, en pagina en ingles y nada macho. Es justamente como dice Wild,
ahora mismo parece que soy Homer en la central nuclear :L

#Fdo. Physlet

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re:¡No me entero de nada!
« Respuesta #6 en: 10 de Mayo de 2010, 23:05:16 pm »
Bueno, voy a intentar ponerte un ejemplo sencillo.

Supongamos que eres el director de un colegio, y quieres una aplicación en la que tu ingresas los nombres y apellidos de un alumno, y 4 de sus notas, vamos a suponer que ingresas el nombre, el apellido y sus 4 notas mas altas en diferentes asignaturas. Luego, al ser director, y para simplificarte el trabajo, quieres que el sistema, él solo, te indique junto al nombre y apellidos de estos alumnos su nota media.

Vamos a hacerlo tanto como en programación estructural como en programación orientada a objetos, y para solo dos alumnos.

Primero en programación estructural:

<?php
$nombres 
= array("Federico García Lorca","Juan Ramón Jimenez");
$notas = array(array(7.5,8,8,9), array(8,8.5,9,10));

// Mostramos las notas de los estudiantes
for($i=0$i<count($nombres); $i++) {
echo 
"Nombre: ".$nombres[$i];
echo 
" Nota: ".(($notas[$i][0]+$notas[$i][1]+$notas[$i][2]+$notas[$i][3])/4);
echo 
"<br />";
}
?>


Este ejemplo sería en orientado a objetos:

<?php

class Alumno {
   private 
$nombre;
   private 
$notas;

  function 
__construct ($name) {
    
$this->nombre $name;
  }
  public function 
setNotas($a$b$c$d) {
    
$this->notas = array($a$b$c$d);
  }
  public function 
getNombre() { return $this->nombre; }
  public function 
media() {
    return ((
$this->notas[0]+$this->notas[1]+$this->notas[2]+$this->notas[3])/4);
  }
}

// Vamos a crear un array de objetos Alumno
$alumnos = array();
$alumnos[0] = new Alumno("Federico Garcia Lorca");
$alumnos[0]->setNotas(7.5889);

$alumnos[1] = new Alumno("Juan Ramon Jimenez");
$alumnos[1]->setNotas(88.5910);

// Mostramos ahora todos los alumnos
for($i=0$i<count($alumnos); $i++) {
echo 
"Nombre: ".$alumnos[$i]->getNombre()." Nota: ".$alumnos[$i]->media();
echo 
"<br />";
}
?>


Espero que puedas captar las diferencias del código y que hace cada cosa.
Puede parecer que el de programación estructurada es mejor, pero no es así, aunque si que es mas corto.

Imagina que luego quieres implementar mas acciones, solo debes modificar un poco tu clase, por ejemplo para agregar su edad, y luego hacer las pocas llamadas que hacen falta en el resto del código. Recuerda tambien que con clases el código es reutilizable, así que puedes usar la clase en todos los códigos que necesites.

En fin, te recomiendo ver algo de teoría sobre POO, que seguro que te resuelve muchas dudas.

Si no, ya sabes, avisa en que dudas tienes y te intento ayudar,
Saludos!
« Última modificación: 10 de Mayo de 2010, 23:07:21 pm por TLX »
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:¡No me entero de nada!
« Respuesta #7 en: 10 de Mayo de 2010, 23:26:39 pm »
Lo que yo te recomiendo es buscar el aspecto teórico del POO, entender sus elementos y conceptos fundamentales para luego aplicarlos en un lenguaje de programación (en este caso, PHP). Yo aún no sé aplicarlo bien, pero ando estudiando teoría de POO en la universidad.

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:¡No me entero de nada!
« Respuesta #8 en: 11 de Mayo de 2010, 12:43:09 pm »

¡Vale vale! Creo que entre el ejemplo de TLX y un tema expuesto por Kevin he llegado a la concluson de saber lo mas basico solo con leermelo un par de veces (¿50? ¿60?) y creo que mas o menos entiendo la básico. Os pongo aqui que es lo que creo que he aprendido y me decis si estoy equivocado o no ¿vale?:


<?php
class usuario # Inicio de una nueva clase... Pueden haber miles.
{
	
# Estas dos variables indican que van a ser privadas y que vamos a trabajr con ellas. ¿Noes así?
	
private 
$consulta;
	
private 
$fetch;
	

	
# Se declara una funcion pero.. ¿Las dos barras (__) para que son?
	
function 
__construct($xIdusuario)
	
{
                
# creo que la estructura $this->usuario = "siquillote"; quiere decir : Que para esta variable, usuario, se le asigne el valor siquillote
	
	
$this->consulta mysql_query("SELECT * FROM usuarios WHERE id = &#39;".$xIdusuario."&#39;");
	
	
$this->fetch mysql_fetch_array($this->consulta); # Lo mismo que lo de arriba...
	
}
	

	
# Esto ya no lo entiendo ....
	
function 
mostrar($xDato)
	
{
	
	
return 
$this->fetch[$xDato];
	
}
}
?>




#Fdo. Physlet

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:¡No me entero de nada!
« Respuesta #9 en: 11 de Mayo de 2010, 15:39:38 pm »
La función __construct es una función especial, que se ejecuta al llamar a la clase, es decir, al hacer:
$var = new usuario(1);
estamos llamando a la función __construct, enviando el parametro (1).

Desconectado Warlox

  • Moderadores PHP
  • PHPero Master
  • ****
  • Mensajes: 1.278
  • Karma: 77
  • Sexo: Masculino
  • A veces hay que aprender a correr antes de caminar
    • Ver Perfil
    • Página personal
Re:¡No me entero de nada!
« Respuesta #10 en: 11 de Mayo de 2010, 19:44:31 pm »
A ver, vamos por partes:

function __construct($xIdusuario)
{
	

	
# creo que la estructura $this->usuario = "siquillote"; quiere decir : Que para esta variable, usuario, se le asigne el valor siquillote
	
$this->consulta mysql_query("SELECT * FROM usuarios WHERE id = &#39;".$xIdusuario."&#39;");
	
$this->fetch mysql_fetch_array($this->consulta); # Lo mismo que lo de arriba...

}


El __construct, es una función "especial" la cual toma los parámetros enviados en la clase (vamos, es como una simple función más).

# Esto ya no lo entiendo ....
	

function mostrar($xDato)
{
	
return 
$this->fetch[$xDato];
}


Eso no es escencial en todas las funciones, solo lo es en esta clase que hice. Lo que hace es que al llamar a la función "mostrar()" de la clase, lo toma como un mysql_fetch_array, es decir:


$sql 
mysql_query("SELECT FROM usuarios WHERE id = &#39;1&#39;");
$row mysql_fetch_array($sql);
echo 
$row["nombre"]

# Es lo mismo que llamarlo desde la clase...

$usuario = new usuario("1");
echo 
$usuario->mostrar("nombre");


Espero hayas  entendido mejor, cualquier cosa, me dices.
- Moderador de PHP