Foros del Web » Programando para Internet » PHP »

Utilización clases

Estas en el tema de Utilización clases en el foro de PHP en Foros del Web. Buenas, estoy mirando que tal va el tema clases con php y bueno provando con algo pequeño me gustaria saber si alguien me puede echar ...
  #1 (permalink)  
Antiguo 14/03/2007, 15:37
 
Fecha de Ingreso: enero-2007
Mensajes: 78
Antigüedad: 17 años, 3 meses
Puntos: 0
Utilización clases

Buenas, estoy mirando que tal va el tema clases con php y bueno provando con algo pequeño me gustaria saber si alguien me puede echar un cable con este ejemplo, ya que no se porque no me imprime los dos elementos de la clase Persona y solo me imprime el primero.

Código PHP:
  class Persona {
  
    
// Propiedades
    
private $nombre;
    private 
$apellido;
    
    
// Métodos
    
function asignaNombre($nombreAsignado,$apellidoAsignado) {
      
$this->nombre $nombreAsignado;
      
$this->apellido $apellidoAsignado;
    }
    
    function 
dameNombre() {
      return 
$this->nombre;
      return 
$this->apellido;
    }
  
  } 
// class Persona

  
$javier = new Persona();
  
$javier->asignaNombre('Javier','Moja');


  
// Accedemos a los nombres de las personas
  
echo $javier->dameNombre(); 

Gracias por todo
  #2 (permalink)  
Antiguo 14/03/2007, 15:49
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Utilización clases

Código PHP:
function dameNombre() {
      return 
$this->nombre;
      return 
$this->apellido;
 } 
Bueno el return termina inmediatamente la ejecución de la función y retorna su argumento como valor de la función(mas info). Por eso solo te devuelve el nombre; una solucion seria:
Código PHP:
function dameNombre() {
       return 
$this->nombre ' ' $this->apellido;
 } 
Salu2
__________________

  #3 (permalink)  
Antiguo 14/03/2007, 15:51
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: Utilización clases

Una función puede tener un único return, eso no es oop.
Para consultas sobre oop tenes el subforo de OOP, donde tenés gente que la tiene mas clara en el tema.

Para tu problema, podes hacer:
Código PHP:
class Persona {
  
    
// Propiedades
    
private $nombre;
    private 
$apellido;
    
    
// Métodos
    
function asignaNombre($nombreAsignado,$apellidoAsignado) {
      
$this->nombre $nombreAsignado;
      
$this->apellido $apellidoAsignado;
    }
    
    function 
dameNombre() {
        
$return = array();
      
$return['nombre'] = $this->nombre;
      
$return['apellido'] = $this->apellido;
      return 
$return;
    }
  
  } 
// class Persona

  
$javier = new Persona();
  
$javier->asignaNombre('Javier','Moja');


  
// Accedemos a los nombres de las personas
  
$salida $javier->dameNombre(); 
  echo  
$salida['nombre'] . ' ' $salida["apellido"]; 

O bien, mas practico para el ejemplo (no quiere decir que sea mas correcto, depende del caso):
Código PHP:

class Persona {
  
    
// Propiedades
    
private $nombre;
    private 
$apellido;
    
    
// Métodos
    
function asignaNombre($nombreAsignado,$apellidoAsignado) {
      
$this->nombre $nombreAsignado;
      
$this->apellido $apellidoAsignado;
    }
    
    function 
dameNombre() {
      return 
$this->nombre ' '$this->apellido;
    }
  
  } 
// class Persona

  
$javier = new Persona();
  
$javier->asignaNombre('Javier','Moja');


  
// Accedemos a los nombres de las personas
  
echo $javier->dameNombre(); 
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #4 (permalink)  
Antiguo 14/03/2007, 15:54
 
Fecha de Ingreso: enero-2007
Mensajes: 78
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Utilización clases

Buff ostias es verdad, ya no me acordaba, muchas gracias por todo.
  #5 (permalink)  
Antiguo 14/03/2007, 16:46
 
Fecha de Ingreso: enero-2007
Mensajes: 78
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Utilización clases

Bueno en realidad mas bien la duda era la siguiente y aunke me ha ido de coña el anterior consejo para el avance, no consigo resolver el problema al 100%.

Tengo un formulario que va a la siguiente pagina PHP

Código PHP:
<?php
//guardamos los datos del formulario en variables para una comprensión mas sencilla
$titulo=$_REQUEST["Titulo"];
$grupo=$_REQUEST["Grupo"];
$genero=$_REQUEST["Genero"];
$precio=$_REQUEST["Precio"];
$stock=$_REQUEST["Stock"];

class 
CD{
    
//Propiedades de la clase
//    private $codigocd;
    
private $titulo;
    private 
$grupo;
    private 
$genero;
    private 
$precio;
    private 
$stock;
    
    
//Metodos
    
function asignarCD ($tituloasignar,$grupoasignar,$generoasignar,$precioasignar,$stockasignar){         
        
//$this->codigocd=$codigoasignar;
        
$this->titulo=$tituloasignar;
        
$this->grupo=$grupoasignar;
        
$this->genero=$generoasignar;
        
$this->precio=$precioasignar;
        
$this->stock=$stockasignar;
    }
    function 
dameCD(){
        return 
$this->titulo ' '$this->grupo ' '$this->genero ' '$this->precio ' '$this->stock;
    }
}

$titulo=new CD();
$titulo->asignarCD($titulo,$grupo,$genero,$precio,$stock);
echo 
$titulo->dameCD();
?>
e introduciendo los datos Vamos Ramones Flamenco 50 8(en este orden) me retorna "Object id #1 Rampones Flamenco 50 8" como podemos comprovar me añade Object id #1 y no me sale Vamos.
  #6 (permalink)  
Antiguo 14/03/2007, 17:07
Avatar de -=ArgoN=-  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona, España
Mensajes: 843
Antigüedad: 18 años, 6 meses
Puntos: 1
Re: Utilización clases

Esto es porque repites el mismo nombre de variable:

Código PHP:
<?php
$titulo
=$_REQUEST["Titulo"];
//[...]
$titulo=new CD();
//[...]
?>
ArgoN
  #7 (permalink)  
Antiguo 15/03/2007, 03:08
 
Fecha de Ingreso: enero-2007
Mensajes: 78
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Utilización clases

ya pero yo quiero ke el nombre de lal nuevo tipo sea el de la variable.

no es posible?
  #8 (permalink)  
Antiguo 15/03/2007, 07:31
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: Utilización clases

Belzebu, realmente no comprendo que decís, aparte de que "el nombre de lal nuevo tipo sea el de la variable" no tiene coherencia, trata por favor de no usar k, ke y cosas así, porque personalmente esto hace que yo y mucha gente cierre el thread sin brindarle ayuda.

Ahora, si querés que título primero tenga un val y luego sea un objecto, podes, pero no tiene ningún sentido, por lo que repito el "no te entiendo".
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #9 (permalink)  
Antiguo 16/03/2007, 07:04
Avatar de -=ArgoN=-  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona, España
Mensajes: 843
Antigüedad: 18 años, 6 meses
Puntos: 1
Re: Utilización clases

Esto:
Código:
$titulo=new CD();
$titulo->asignarCD($titulo,$grupo,$genero,$precio,$stock);
equivale a esto:
Código:
$titulo=new CD();
$titulo->asignarCD(new CD(),$grupo,$genero,$precio,$stock);
ArgoN
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 07:10.