Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Baaaw Oic en 2 Marzo 2010, 03:20 am



Título: Existe en php esto ? $obj->edad->lenght o $obj->edad->tostring() ;
Publicado por: Baaaw Oic en 2 Marzo 2010, 03:20 am
Supongamos que tengo esta clase:

Código
  1. class Persona
  2. {
  3.  function edad()
  4.  {
  5.    return 25;
  6.  }
  7.  function fecnac()
  8.  {
  9.    return "1980/12/01";
  10.  }
  11. }

Y la implemento de esta forma:

Código
  1. $per = new Persona();

Existe esto en php.

$per->edad()->Length();  //(como en JAva y NET)

EDITO: No quiero saber si eso esta implementado, lo que deseo saber es si es valido usar "->"   dos veces ...


Título: Re: Existe en php esto ? $obj->edad->lenght o $obj->edad->tostring() ;
Publicado por: MinusFour en 2 Marzo 2010, 03:25 am
Hmm, creo que no es valido. El -> es para objetos y si haces $obj = new Persona(); y luego $obj->edad(); te regresa el entero y como no es un objeto no es valido usar -> otra vez.


Título: Re: Existe en php esto ? $obj->edad->lenght o $obj->edad->tostring() ;
Publicado por: Baaaw Oic en 2 Marzo 2010, 03:29 am
Eh ahi el problema, entonces no habria forma de hacer lo que deseo en php. Quiero hacer algo parecido con lo que hace java y net ... por ejemplo.

En Net:

Dim num as integer = 15
msgbox(num.tostring())

Haber si alquien me hecha una mano ..

EDito: He tratado de hacerlo asi y si funciona pero no me parece una forma elegante de resolver mi duda.

cadena.php
Código
  1. <?
  2. class Cadena
  3. {
  4. function tamanio($funcion)
  5. {
  6. echo strlen($this->$funcion());
  7. }
  8. }
  9. ?>

clase.php
Código
  1. <?
  2. include("cadena.php");
  3. class Clase extends Cadena
  4. {
  5. private $_ape;
  6.  
  7. function apellido()
  8. {
  9. $this->_ape='Pereda Munio';
  10. return $this->_ape;
  11. }
  12. }
  13. ?>

Y lo uso asi: index.php
Código
  1. <html xmlns="http://www.w3.org/1999/xhtml">
  2. <body>
  3.  
  4. <?
  5. include("clase.php");
  6. $clas = new Clase();
  7.  
  8. $clas->tamanio('apellido');
  9. ?>
  10.  
  11. </body>
  12. </html>

Si funciona, pero deseo que la programacion sea mas limpia y practica (y ademas tenga la estructura de como se hace en Java xD)


Título: Re: Existe en php esto ? $obj->edad->lenght o $obj->edad->tostring() ;
Publicado por: MinusFour en 2 Marzo 2010, 04:23 am
Eso es porque en java los strings son objects y aqui creo que php los trata como variables normales.

Porque no simplemente le haces strlen a lo que te de el apellido y ya?


Título: Re: Existe en php esto ? $obj->edad->lenght o $obj->edad->tostring() ;
Publicado por: Castg! en 2 Marzo 2010, 04:34 am
no asi no es, es asi:

Código
  1. $per = new Persona();
  2. $lenght = strlen($per);

saludos...