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

Type casting en PHP 5 (como JAVA o .NET)

Estas en el tema de Type casting en PHP 5 (como JAVA o .NET) en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola a todos, Busque en el foro y no encontre esta pregunta. Como se castea correctamente un objeto en PHP? Supongamos el siguiente ejemplo: Yo ...
  #1 (permalink)  
Antiguo 20/08/2009, 19:09
 
Fecha de Ingreso: julio-2008
Ubicación: Maldonado
Mensajes: 27
Antigüedad: 16 años, 6 meses
Puntos: 0
Type casting en PHP 5 (como JAVA o .NET)

Hola a todos,

Busque en el foro y no encontre esta pregunta. Como se castea correctamente un objeto en PHP?

Supongamos el siguiente ejemplo:

Yo tengo dos clases A y B, A tiene una coleccion de B (relacion de agregacion)

Clase B
Código PHP:
class B
{
    private 
$_texto;

    public function 
devuelveTexto()
    {
        return 
$this->_texto;
    }

Clase A
Código PHP:
class A
{
    private 
$_colB;

    public function 
addB(B $b)
    {
        
$this->_colB[] = $b;
    }

    public function 
verificar($textoAVerificar)
    {
        
//Aca viene el asunto del problema
    
}

Bien ahora supongamos que quiero comparar el string contenido en $textoVerificar con el string que devuelve el metodo devuelveTexto de la clase B, que a su vez cada objeto de B pertenece a una coleccion dentro de la clase A.

En .NET por ejemplo bastaria con recorrer la coleccion de objetos y "castear" cada objeto para despues usar el metodo devuelveTexto y compararlo con $textoVerificar.

Algo asi:
Código:
public function verificar($textoVerificar)
{
    $i;
    $encontrado = false;
    $retorna;
    
     while($i <= count($this->_colB) and $encontrado = false){
        if(ctype($this->_colB, B.php)->devuelveTexto() = $textoVerificar){
            $retorna = 'Se encontro la instancia que contiene el texto';
            $encontrado = true;
        }
        $i++;
    }
}
Intente usar las clases que tiene incorporada php como: SplObjectStorage y ArrayObject pero sin exito.

Como es esto en PHP?

Desde ya gracias!
  #2 (permalink)  
Antiguo 20/08/2009, 20:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 7 meses
Puntos: 2135
Respuesta: Type casting en PHP 5 (como JAVA o .NET)

De hecho es de la misma forma, pero puedes aprovechar el método mágico __toString(), revisa lo siguiente:

Código PHP:
Ver original
  1. class B
  2. {
  3.     private $_texto;
  4.  
  5.     public function devuelveTexto()
  6.     {
  7.         return $this->_texto;
  8.     }
  9.  
  10.     public function __toString()
  11.    {
  12.         return $this->_texto;
  13.     }
  14. }
  15.  
  16. class A
  17. {
  18.     private $_colB;
  19.  
  20.     public function addB(B $b)
  21.     {
  22.         $this->_colB[] = $b;
  23.     }
  24.  
  25.     public function verificar($textoAVerificar)
  26.     {
  27.         foreach( $this->_colB as $B) {
  28.                if ($B == $textoAVerificar) {
  29.                       $encontrado = true;
  30.                }
  31.         }
  32.     }
  33. }

Saludos.
  #3 (permalink)  
Antiguo 21/08/2009, 08:00
 
Fecha de Ingreso: julio-2008
Ubicación: Maldonado
Mensajes: 27
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Type casting en PHP 5 (como JAVA o .NET)

Muchas gracias GatorV, era mas facil de lo que pensaba! :)
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 02:15.