Autor Tema: ¿Diferencias?  (Leído 1183 veces)

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
¿Diferencias?
« en: 07 de Abril de 2010, 02:31:56 am »
En mi carrera tengo que estudiar la denominada Programación Orientada a Objetos...
Nos mandaron a hacer como práctica una aplicación que dado los 2 catetos te calcule la hipotenusa...

Yo la puedo hacer fácilmente sin usar clases, objetos, métodos, etc... Entonces yo me pregunto, cuál es la diferencia entre la POO y la programación en PHP común...?

Comunidad PHPeros

¿Diferencias?
« en: 07 de Abril de 2010, 02:31:56 am »

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:¿Diferencias?
« Respuesta #1 en: 07 de Abril de 2010, 02:35:56 am »
Con la POO es más profesional,  porque los códigos son reusables y tiene mucha más organización...
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado marco811

  • PHPero Avanzado
  • ****
  • Mensajes: 306
  • Karma: 16
  • Sexo: Masculino
  • ¡¡Hola mundo!!
    • Ver Perfil
    • Personalidad Web
Re:¿Diferencias?
« Respuesta #2 en: 07 de Abril de 2010, 02:41:22 am »
La ventaja es que todo esta en un entorno privado que no afecta a ninguna variable ni funcion global.
Un saludo!

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:¿Diferencias?
« Respuesta #3 en: 07 de Abril de 2010, 03:24:36 am »
La diferencia es que una clase la podés usar varias veces, con solo escribirla una vez. Son muy útiles más que todo a la hora de sacar datos de MySQL. Por ejemplo, yo en mi web, utilizo una clase para usuarios, de la que saco la clave, el nick y demás, lo que me ha resultado sumamente útil :P.

Espero haberte ayudado.
Saludos.
- Moderador de PHP


Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:¿Diferencias?
« Respuesta #4 en: 07 de Abril de 2010, 04:55:27 am »
Bueno a mí me gustaría que alguien me hiciera lo del cálculo de la hipotenusa en PHP usando clases, para tener una guía de como se maneja esto...

No es que me la hayan asignado de tarea ni nada, es más, en estos momentos no estamos dando lenguajes de programación, sino solo algoritmos... Y cuandp estudiemos lenguajes solo será Java... Pero yo quiero aprenderlo en PHP =P

Sin POO en PHP yo lo hice de esta manera:

<?PHP
$cat1 = $_GET['cat1'];
$cat2 = $_GET['cat2'];

$oper = pow($cat1,2) + pow($cat2,2);
$hip = sqrt($oper);
?>

Alguien me haría el gran favor de aplicarlo usando POO?

Conectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re:¿Diferencias?
« Respuesta #5 en: 07 de Abril de 2010, 12:24:59 pm »
<?
class Triangulo {
	
var 
$cateto1;
	
var 
$cateto2;

	
public function 
setCatetos($cat1,$cat2) {
	
	
$this->cateto1 $cat1;
	
	
$this->cateto2 $cat2;
	
}
	

	
public function 
getHipotenusa()
	
{
	
	
return 
sqrt(pow($cat1,2) + pow($cat2,2));
	
}
}

$triangulo = new Triangulo();
$triangulo->setCatetos($cat1,$cat2);
$triangulo->getHipotenusa();
?>


Este sería un método de hacerlo con POO.
« Última modificación: 07 de Abril de 2010, 12:27:17 pm por naveda »
Por favor, leete las Normas


Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:¿Diferencias?
« Respuesta #6 en: 07 de Abril de 2010, 21:19:59 pm »
Gracias naveda, antes de buscar la relación y demás, quisiera saber de qué forma el usuario puede introducir los valores de los catetos?

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:¿Diferencias?
« Respuesta #7 en: 07 de Abril de 2010, 22:58:02 pm »
Gracias naveda, antes de buscar la relación y demás, quisiera saber de qué forma el usuario puede introducir los valores de los catetos?
A través de un formulario se puede...


<?php
// Codigo class

if($_POST) { // si envió el form
$triangulo = new Triangulo();
$triangulo->setCatetos($_POST[&#39;cat1&#39;], $_POST[&#39;cat2&#39;]);
echo &#39;Hipotenusa: &#39;.$triangulo->getHipotenusa();
} else {
...


Luego sería montar el form nada más

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:¿Diferencias?
« Respuesta #8 en: 10 de Abril de 2010, 20:53:58 pm »
A través de un formulario se puede...


<?php
// Codigo class

if($_POST) { // si envió el form
$triangulo = new Triangulo();
$triangulo->setCatetos($_POST[&#39;cat1&#39;], $_POST[&#39;cat2&#39;]);
echo &#39;Hipotenusa: &#39;.$triangulo->getHipotenusa();
} else {
...


Luego sería montar el form nada más

Que va.. No lo comprendo. No hay una manera más básica de establecer las variables de cat1 y cat2?
Es que mmm veo que repites la línea "$triangulo = new Triangulo();" que ya está dentro de la clase...

Por cierto, a qué se refiere esto:

$triangulo->getHipotenusa()

O sea, el " -> "

Disculpen mis preguntas de principiantes, es que realmente lo soy en el tema de PHP.

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:¿Diferencias?
« Respuesta #9 en: 10 de Abril de 2010, 23:00:54 pm »
$triangulo->getHipotenusa()

La variable $triangulo especifica el llamado a la clase "triángulo". Luego, el "->" indica que se va a hacer llamado a algún método de la clase (ya sea una variable, una función, etc). Así que al poner getHipotenusa(), significa que está llamando a la función getHipotenusa  de la clase triángulo.

Saludos.
PD: Te recomiendo pasarte por éste post ;).
- Moderador de PHP