Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Error al instanciar clases dentro de otras clases

Estas en el tema de Error al instanciar clases dentro de otras clases en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buenas les presento el ejemplo comentando donde me da el error, a ver si me podeis ayudar. Cita: <?php class a{ function a(){ echo "a<br>"; ...
  #1 (permalink)  
Antiguo 23/10/2009, 09:54
 
Fecha de Ingreso: octubre-2009
Mensajes: 3
Antigüedad: 14 años, 6 meses
Puntos: 0
Error al instanciar clases dentro de otras clases

Buenas les presento el ejemplo comentando donde me da el error, a ver si me podeis ayudar.
Cita:
<?php
class a{
function a(){
echo "a<br>";
}
}
class b{
function b(){
echo "b<br>";
}
}
class c{
function c(){
$a = new a(); //esto da error
$b= new b(); //esto tambien
}
}

?>
gracias de antemano
  #2 (permalink)  
Antiguo 23/10/2009, 10:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Error al instanciar clases dentro de otras clases

La pregunta del millón, ¿Que error te da?

Saludos
  #3 (permalink)  
Antiguo 23/10/2009, 10:35
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Error al instanciar clases dentro de otras clases

Hola

Prueba usando herencia, b que extienda de a y c que extienda de b.

Saludos
  #4 (permalink)  
Antiguo 23/10/2009, 10:52
 
Fecha de Ingreso: octubre-2009
Mensajes: 3
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Error al instanciar clases dentro de otras clases

respondiendo a GatorV, no me da error, me he expresado mal, simplemente no imprime nada en pantalla como cuando esta desactivado el reporte de errores (esta activado)
  #5 (permalink)  
Antiguo 23/10/2009, 11:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Error al instanciar clases dentro de otras clases

Pues te falta instanciar una copia de tu clase c para mandar llamar al constructor...
  #6 (permalink)  
Antiguo 23/10/2009, 11:14
 
Fecha de Ingreso: octubre-2009
Mensajes: 3
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Error al instanciar clases dentro de otras clases

tienes razon, perdon por las molestias.
  #7 (permalink)  
Antiguo 24/10/2009, 07:54
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: Error al instanciar clases dentro de otras clases

Ares, primero que nada, indenta las clases y usa el editor para marcarlo como código PHP, así podemos seguirlo mejor.

Segundo, revisa siempre el manual de PHP, particularmente con el tema de los objetos y los constructores, estás usando un manual o tutorial antiguo, ya que los constructores deben usar __constructor, las clases deben iniciar en mayúsculas, y en lo posible, evitar que cada una imprima sin control cuando quieren, y menos en el constructor (sé que tu ejemplo es sencillo, pero aprovecho para aclararlo).

Te agrego algunos temas más en el código para que investigues (no se te ocurra preguntar sin buscarlos en el manual, lo bueno que por accidente aprenderás muchas cosas maś ).

Cada clase debería estar en su propio archivo aparte:

Código PHP:
<?php 
// ClaseA.php

class ClaseA
{
   private 
$_valor

   public function 
__construct($valor)
   {
      
$this->_valor $valor;
   }
   public function 
__toString()
   {
      return 
$this->_valor;
   }
}
// ClaseB.php

class ClaseB
{
   private 
$_valor;

   public function 
__construct($valor)
   {
      
$this->_valor $valor;
   }
   public function 
__toString()
   {
      return 
$this->_valor;
   }
}

$a = new ClaseA('Nombre');
$b = new ClaseB('Apellido');

echo 
$a ." "$b;
Saludos!
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
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 06:42.