Comunidad de diseño web y desarrollo en internet online

Call to a member function getName() on a non-object

Citar            
MensajeEscrito el 03 Sep 2011 06:43 pm
Mis cordiales saludos,

les comento.. estoy practicando POO de PHP y estoy teniendo un par de problemas.
Tengo estos archivos

Index.php

Código :


<html>
   <head>
      
      
   
   </head>
   
   
   <body>
      <form action="instanciarComment.php" method="post">
         
         nombre : <input type="text" name="nombre" /><br/>
         apelliodo :  <input type="text" name="apellido" /><br/>
         comentario: <textarea name="comentario"></textarea><br/>
         <input type="submit" value="enviar" />
      
      </form>
   
   </body>



</html>



instanciarComments.php

Código :



   include_once('controller.php');
   include_once('comments.php');
   
   
   $controlador = new Controller();
   $controlador->setComments();
   $controlador->getComments();




controller.php


Código :



   class Controller{
   
      public function __construct()
      {
         
         $comentarios = new Comments();
         
      }   
      
      public function setComments()
      {
         
         $comentarios->setNombre('yoel');
      
      
      }
      public function getComments()
      {
      
         echo $comentarios->getNombre();
      
      }
   
   
   }



y comments.php


Código :


class Comments{
   
      private $_nombre;
      private $_apellido;
      private $_comentario;
      
      
      public function setNombre($nombre)
      {
      
         $this->_nombre = $nombre;
      
      }
      public function getNombre()
      {
      
      
         return $this->_nombre;
      
      }
      
   
   
   
   }




y me tira el siguiente error:

Fatal error: Call to a member function setNombre() on a non-object in C:\xampp\htdocs\clases\controller.php on line 10


Si alguien me prodria dar una mano, se lo agradeceria muchisimo.


Desde ya, muchas gracias!

Por yoelotero

51 de clabLevel



Genero:Masculino  

Programador web.

firefox
Citar            
MensajeEscrito el 04 Sep 2011 01:54 pm
El problema esta en el scope de $comentarios. Como lo tenes puesto solo funciona dentro del constructor. Debe quedar asi tu clase.

Código :

class Controller{
      private $_comentarios;
      public function __construct()
      {
         $this->comentarios = new Comments();         
      }         
      public function setComments()
      {        
         $this->comentarios->setNombre('yoel');
      }


Saludos

Por GustavoV

Claber

136 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 05 Sep 2011 04:02 pm
AHHHH. Muchisimas gracias!!

Por yoelotero

51 de clabLevel



Genero:Masculino  

Programador web.

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.