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!