Comunidad de diseño web y desarrollo en internet online

Duda simple clase estatica

Citar            
MensajeEscrito el 05 Ago 2010 11:17 pm
Hola que tal, mi duda es simple. Armé el siguiente código:

Código :

<?php
class Prueba
{   
   // Métodos de Control
   public static function Select()
   {
      return getTexto();
   }
   
   private function getTexto()
   {
      return "test";
   }
   
}
echo Prueba::Select();
?>


El cual me devuelve el siguiente error:
Fatal error: Call to undefined function getTexto() in C:\wamp\www\maxter\_web\php\prueba.php on line 7

¿Cómo puedo solucionarlo?

Por lucasmoyano

Claber

1960 de clabLevel

22 tutoriales

Genero:Masculino  

Developer

chrome
Citar            
MensajeEscrito el 06 Ago 2010 03:51 am
quitale el private y colocale public ?

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 06 Ago 2010 12:38 pm
sigue tirando el mismo error...

si le saco el static funciona, pero por qué?

Por lucasmoyano

Claber

1960 de clabLevel

22 tutoriales

Genero:Masculino  

Developer

firefox
Citar            
MensajeEscrito el 06 Ago 2010 02:51 pm

Código PHP :

<?php
class Prueba
{   
   // Métodos de Control
   public static function Select()
   {
      return getTexto();
   }
   
   private function getTexto()
   {
      return "test";
   }
   
}
echo Prueba::Select();
?>


Alli estas llamando la funcion getTexto, pues los metodos se llaman con $this

Código PHP :

<?php
class Prueba
{   
   // Métodos de Control
   public static function Select()
   {
      return $this->getTexto();
   }
   
   private function getTexto()
   {
      return "test";
   }
   
}
echo Prueba::Select();
?>


Pero también te dará problemas, porque no deberias usar $this en el contexto de un metodo estático... asi que la solución seria declarar getTexto como static tambien, quedando así:



Código PHP :

<?php
class Prueba
{   
   // Métodos de Control
   public static function Select()
   {
      return self::getTexto();
   }
   
   private static function getTexto()
   {
      return "test";
   }
   
}
echo Prueba::Select();
?>


saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 06 Ago 2010 08:53 pm
Graciaaas :P

Por lucasmoyano

Claber

1960 de clabLevel

22 tutoriales

Genero:Masculino  

Developer

chrome
Citar            
MensajeEscrito el 06 Ago 2010 11:07 pm
De nada, cualquier cosa aquí estamos...

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox

 

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