Código de PHP - Generar instancias de varias clases

Imágen de perfil
Val: 1.196
Bronce
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Generar instancias de varias clasesgráfica de visualizaciones


PHP

Publicado el 7 de Noviembre del 2010 por Xavi (533 códigos)
5.141 visualizaciones desde el 7 de Noviembre del 2010
Aquí se muestra como generar instancias de varias clases desde una sola clase, pudiendo acceder a cualquier de las clases instanciadas.

Versión 1

Publicado el 7 de Noviembre del 2010gráfica de visualizaciones de la versión: Versión 1
5.142 visualizaciones desde el 7 de Noviembre del 2010
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
/**
 * Ejemplo obtenido de la web:
 * http://www.serversidemagazine.com/php/how-to-inherit-from-multiple-objects-workaround
 *
 * Aqui se muestra como generar instancias de varias clases desde una sola clase,
 * pudiendo acceder a cualquier de las clases instanciadas.
 */
class A {
	public function class_a()
	{
		return 'this is object a';
	}
}
 
class B {
	public function class_b()
	{
		return 'this is object b';
	}
}
 
class C {
	public function class_c()
	{
		return 'this is object c';
	}
}
 
abstract class SuperObject
{
	public function __construct()
	{
		# Si el numero de argumentos recibidos por la funcion es superior a 0
		if(func_num_args()>0)
		{
			# Cogemos la lista de parametros recibidos en la funcion
			$parameters=func_get_args();
			# Recorremos un bucle por todos los parametros recibidos en la funcion
			for($i=0;$i<count($parameters);$i++)
			{
				# Cargamos la clase
				$this->extendClass($parameters[$i]);
			}
		}
	}
 
	public function extendClass($class_name)
	{
		# Si la clase existe...
		if(class_exists($class_name))
			$this->$class_name = new $class_name;
	}
}
 
class MyObject extends SuperObject
{
	public function __construct()
	{
		# Se generan en el constructor
		parent::__construct('A','B');
	}
}
 
$mo = new MyObject();
$mo->extendClass('C');
echo "<br>".$mo->A->class_a();
echo "<br>".$mo->B->class_b();
echo "<br>".$mo->C->class_c();
?>



Comentarios sobre la versión: Versión 1 (0)


No hay comentarios
 

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s1998