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

instancias de clases pasadas por referencia II

Estas en el tema de instancias de clases pasadas por referencia II en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, os rehago la pregunta de ayer porque pudiera resultar liosa. Imaginad esta situación: Código: error_reporting(E_ALL); require_once("a.php"); $varA = new a('Titulo'); $varA->sacaTitulo(); con la clase ...
  #1 (permalink)  
Antiguo 27/04/2006, 10:55
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 18 años, 5 meses
Puntos: 1
instancias de clases pasadas por referencia

Hola, os rehago la pregunta de ayer porque pudiera resultar liosa.

Imaginad esta situación:

Código:
error_reporting(E_ALL);
require_once("a.php");
$varA = new a('Titulo');
$varA->sacaTitulo();
con la clase 'a'
Código:
class a{
	var $titulo;
	var $var_b;
	function a($texto){
		require_once("b.php");
		$this->titulo = $texto;
		$this->var_b = &new b($texto);
	}
	function sacaTitulo(){
		echo "<br />" . $this->titulo;
	}
}
y la clase 'b'
Código:
class b{
	var $nombre;
	function b($texto){
		$this->nombre = $texto;
	}
	function dimeNombre(){
		echo $this->nombre;
	}
}
Es posible hacer lo que hago en el constructor de la clase 'a'? ¿Puedo guardar en una propiedad de una clase ($this->var_b)una instancia de otra clase (= new b)? En ese caso, ¿como accedo a los métodos de la clase 'b' que he guardado en la propiedad de la clase 'a'? La asignación de la instancia a la variable, ¿debe ser por valor o por referencia? Tened presente que estamos considerando todo en php4.

Compañeros, muchas gracias por la ayuda
__________________
http://www.nosoynadie.net/
  #2 (permalink)  
Antiguo 29/04/2006, 08:44
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
si

No solo es posible, sino muy comun, y hasta necesario diria yo. Se llama composición, y es cuando una clase tiene como miembros a otras clases. Lo común es que la asignación sea por referencia, pero todo depende de los objetivos que quieras alcanzar, en algunos casos puedes desear que sea un objeto nuevo. Las variables y metodos de b se encuentran de la forma:

Código PHP:
$a->var_b->dimeNombre(); 
un saludo,
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 05:07.