Documente Academic
Documente Profesional
Documente Cultură
http://www.rinconastur.com/php/php88.php
Constantes
Uno de los elementos no imprescindibles que puede contener una clase son las constantes. Para definirlas debemos escribir: const nombre = valor
dnde const es una palabra reservada que establece la condicin de constante, nombre es el nombre de la propia constante (no va precedido de $) y valor el nmero o cadena alfanumrica asignada a esa constante.
1 de 11
http://www.rinconastur.com/php/php88.php
Cuando el acceso a constantes, variables o mtodos estticos se produce desde un mtodo de la propia clase puede sustituirse nombreClase por la palabra reservada self (yo mismo). Obsrvalo en los ejemplos. Este primero gestiona nicamente constantes y elementos estticos. <?php class MiClase { /* definimos constantes */ const cadena1="Soy una cadena"; const cadena2=1.234; /* aqui usamos sintaxis de documento incrustado */ const cadena3=<<<'cde' Soy una cadena incluida dentro de una constante mediante la sintaxis de documento incrustado. Esta sintaxis funciona siempre que la versin de PHP sea superior a 5.3 cde; /* definimos una variable esttica */ public static $estatica=<<<'fdg' Soy una variable esttica y soy pblica. Tanto yo como las constantes podemos ser visualizadas sin necesidad de crear un objeto. Utilizando :: puede vrseme sin problemas. fdg; /* incluyamos dos funciones definidas como estticas */ public static function mi_estatica($a,$b){ return pow($a, $b)*self::cadena2- MiClase::otra_estatica($a,$b); } public static function otra_estatica($a=3,$b=2){ return pow($b, $a) + MiClase::cadena2; } } /* he escrito la clase pero no voy a crear ningn objeto. Visualizo los elementos y ejecutar los mtodos estticos */ print MiClase::cadena1."<br />"; print MiClase::cadena2."<br />"; print MiClase::cadena3."<br />"; print MiClase::$estatica."<br />"; print MiClase::mi_estatica(6,5)."<br />"; print MiClase::otra_estatica()."<br />"; ?>
ejemplo306.php
Cuidado! La sintaxis de documento inscrutado no funciona en versiones de PHP inferiores a la 5.3. Ocurre lo mismo con $objeto :: constante , $objeto :: variable_estatica o $objeto :: metodo_estatico() que en versiones inferiores han de ser sutituidos por: Nombre_de_la_Clase::constante , Nombre_de_la_Clase::variable_estatica o Nombre_de_la_Clase::metodo_estatico()
En este otro ejemplo estamos mezclando llamadas a variables y mtodos estticos junto con otros que lo no son. Todos tienen en comn la condicin de visibilidad pblica. <?php /* definimos una clase */ class MiPagina { /* establecemos los valores de las constantes y las variables cuidando que todas estas sean publica */ const cabeza1="<html><head><title>"; static $titulo="Probando clases y objetos"; const cabeza2="</title></head><body bgcolor='"; public $color='yellow'; const cabeza3="'>"; public $cuerpo=<<<'CUERPO' Las clases en PHP permiten la sintaxis de <b>documento incrustado</b> solo a partir de la versin 5.3.<br /> En esta pgina utilizamos constantes y propiedades de tipo <b>public</b> (las estticas siempre lo son). Por esa razn son accesibles desde cualquier lugar.<br /> Modificaremos el <i>color de fondo</i> y el <i>ttulo</i>. CUERPO; public $pie="</body></html>"; /* en este caso la clase no incluye ningn mtodo */ } /* creamos un nuevo objeto instanciando esta clase */ $MiObjeto= new MiPagina;
2 de 11
http://www.rinconastur.com/php/php88.php
/* modificamos el color y el ttulo. Observa la diferente forma en que tratamos las variables estticas */ $MiObjeto->color='Coral'; /* cambiamos el valor de la variable esttica $titulo; MiPagina::$titulo='Ha cambiado el titulo de esta pagina'; /* visualizamos los diferentes elementos (constantes, variables y variables estticas aplicando la sintaxis adecaduada a cada caso) */ print $MiObjeto::cabeza1; print $MiObjeto::$titulo; print $MiObjeto::cabeza2; print $MiObjeto->color; print $MiObjeto::cabeza3; print $MiObjeto->cuerpo; print $MiObjeto->pie; ?>
ejemplo307.php
3 de 11
http://www.rinconastur.com/php/php88.php
print "<br><b>Se instanci un objeto de la clase B</b><br>"; } /* Hay otro metodo esttico con el mismo nombre (estatico )en la clase A (padre) */ public static function estatico(){ return "He surgido del mtodo esttico de la clase B"; } /* Hay otro metodo con el mismo nombre (metodo)en la clase A padre */ public static function metodo(){ return "Me llamo mtodo y soy de la clase B"; } /* Creo una funcion puente para poder acceder a mtodos de la clase padre que tienen un nombre coincidente con uno de de la extendida */ public static function puente(){ return parent::metodo(); } } /* creamos un objeto $objeto_clase_A= new /* creamos un objeto $objeto_clase_B= new print print print print print print print print print print instanciando la clase A */ A(); instanciando la clase B */ B();
"<br><br>LECTURA DE CONSTANTES<br>"; "<br>\$objeto_clase_A::CONSTANTE= ".$objeto_clase_A::CONSTANTE; "<br>\$objeto_clase_B::CONSTANTE= ".$objeto_clase_B::CONSTANTE; "<br>A::CONSTANTE= ".A::CONSTANTE; "<br>B::CONSTANTE= ".B::CONSTANTE; "<br><br>LECTURA DE VARIABLES ESTTICAS<br>"; "<br>\$objeto_clase_A::\$estatica= ".$objeto_clase_A::$estatica; "<br>\$objeto_clase_B::\$estatica= ".$objeto_clase_B::$estatica; "<br>A::\$estatica= ".A::$estatica; "<br>B::\$estatica= ".B::$estatica;
print "<br><br>LECTURA DE VARIABLES PUBLICAS<br>"; print "<br>\$objeto_clase_A->variable= ".$objeto_clase_A->variable; print "<br>\$objeto_clase_B->variable= ".$objeto_clase_B->variable; print print print print print "<br><br>EJECUCIN DE METODOS ESTATICOS<br>"; "<br>\$objeto_clase_A::estatico()= ".$objeto_clase_A::estatico(); "<br>\$objeto_clase_B::estatico()= ".$objeto_clase_B::estatico(); "<br>A::estatico()= ".A::estatico(); "<br>B::estatico()= ".B::estatico();
"<br><br>EJECUCIN DE METODOS <br>"; "<br>\$objeto_clase_A->metodo()= ".$objeto_clase_A->metodo(); "<br>\$objeto_clase_B->metodo()= ".$objeto_clase_B->metodo(); "<br>A::metodo()= ".A::metodo(); "<br>Tambin podemos recurrir a la funcin puente para ejecutar el mtodo de la clase padre"; "<br>\$objeto_clase_B->puente()= ".$objeto_clase_B->puente();
ejemplo310.php
4 de 11
http://www.rinconastur.com/php/php88.php
los script mediante las funciones include o require_once. No habra restriccin en cuanto al nombre a utilizar, sin embargo, resulta muy aconsejable fijar una metodologia simple y cmoda para hacerlo. Si establecemos la pauta de guardar siempre los ficheros que contienen una clase con el nombre de la propia clase (exactamente el nombre de la misma) seguido de una extensin que tambin vamos a mantener fija y que podra ser, por ejemplo, .class.php podemos hacer uso de una comodsima funcin (__autoload) que intentaremos concretar con el ejemplo y que comentamos en l. Hemos duplicado el fichero ejemplo299.php de la pgina anterior (aqu est su cdigo fuente) y lo hemos guardado como MiClase.class.php porque MiClase es precisamente el nombre de la clase que contiene. <?php function __autoload($nombre_de_clase){ include $nombre_de_clase .'.class.php'; } /* esta funcion se encarga de que cada vez que sea instanciada una clase se cargue mediante include el fichero cuyo nombre coincide con el de la clase y cuya extensin es .class.php. De este modo ya podemos despreocuparnos de incluir clases. */ $objeto= new MiClase; /* se cargara la clase MiClase.class.php y se creara el objeto A partir de aqu comprobaremos los resultados de las diferentes funciones informativas visualizando sus resultados mediante print_r con lo cual estaremos en condiciones de visualizar de forma cmoda nombres de variables y/o mtodos y sus valores */ print "<br />Resultados de var_dump<br /><br /><pre>"; var_dump($objeto); print "</pre><br /><br />Resultados de print_r<br /><br /><pre>"; print_r($objeto); print "</pre><br /><br />Resultados de var_export<br /><br /><pre>"; var_export($objeto); print "</pre><br /><br />Resultados de get_object_vars<br /><br /><pre>"; print_r(get_object_vars($objeto)); print "</pre><br /><br />Resultados de get_class_methods<br /><br /><pre>"; print_r(get_class_methods($objeto)); print "</pre><br /><br />Resultados de get_class_vars<br /><br /><pre>"; print_r(get_class_vars('MiClase')); method_exists('MiClase','lee') ? print "<br>Existe el mtodo" : print "<br>No existe el mtodo"; method_exists('MiClase', 'calcula')? print "<br>Existe el mtodo" : print "<br>No existe el mtodo"; print "</pre>"; ?>
ejemplo309.php
Objetos nicos
La utilizacin de clases est ntimamente ligada a la creacin de objetos (en plural). Si pensamos en un centro de enseanza veremos que varias son las aulas, los profesores o los alumnos. Pero puede que nos planteemos que el centro como tal sea un objeto nico. Para aquellos casos en los que queramos impedir la creacin de ms de un objeto podra ser aplicable el procedimiento descrito en este ejemplo. <?php /* escribiremos una clase cuyos nico objeto sea un centro educativo. Para poder utilizar la funcin __autoload el fichero tendr como nombre Centro.class.php que coincide con el nombre de la clase */ class Centro{ /* establecemos las propiedades con condicin de protegidas*/ protected $nombre="I.E.S. Las Pruebas y los Objetos"; //nombre del centro protected $identificador="Q337777777x"; //podra ser el N.I.F. protected $localidad="Fuentes de Narcea (Degaa)" protected $aulas=array(); // ser un array destinado a contener aulas (objetos de otra clase) /* insertamos un costructor con visibilidad protegida. As evitamos que pueda ser invocado desde fuera de la clase o de sus extendidas */ protected function __construct(){ print "Objeto creado satisfactoriamente<br>"; } /* Agregamos una variable privada y estatica con valor nulo que solo ser visible desde la propia clase y no requerir un objeto para ser instanciada */ protected static $instancia; /* Incluimos un mtodo pblico y esttico con nombre Unico() que: Comprueba si la propiedad $instancia tiene valor. En caso de tenerlo nos da un mensaje de advertencia. Si no lo tiene crea un nuevo objeto de la clase actual. */ public static function Unico(){ if (!isset(self::$instancia)) { $objeto =__CLASS__; // __CLASS__ contiene el nombre de la clase actual self::$instancia = new $objeto; }else{ print "Ya existe un objeto Centro y ha de ser nico"; } return self::$instancia; //devuelve el objeto recien creado } }
5 de 11
http://www.rinconastur.com/php/php88.php
?>
<?php /* la funcion autoload nos permitir cargar la clase Centro que es la que se instanciar para crear el objeto */ function __autoload($clase){ include $clase.'.class.php'; } /* la sintaxis habitual \$objeto=mew Centro dara un mensaje de error ya que el mtodo __construct tiene el carcter de protected con lo cual se impide que puede ejecutarse desde esta opcin */ /* Lo nico visible de la clase Centro es el mtodo Unico. Dado que es un mtodo esttico habr que invocarlo con la sintaxis adecuada a su condicin */ Centro::Unico(); /* Al ser invocado por primera el mtodo Unico crea el objeto. */ Centro::Unico(); /* Cuando se invoca por segunda vez el mtodo Unico ya no puede crea el objeto y da el mensaje de advertencia. */ ?>
ejemplo311.php
Objetos mltiples
Aqu puedes ver el cdigo fuente de algunas clases que hemos creado y que utilizaremos para la creacin del mltiples objetos tal como puede verse en el ejemplo que hay a continuacin
Ver clase Centro Ver clase Aula Ver clase Alumnos Ver clase Profesores
<?php /* la funcion autoload nos evita problemas a la hora de incluir los ficheros que contienen las clases requeridas */ function __autoload($clase){ include $clase.'.class.php'; } /* creamos el objeto miCentro tal como se describe en los ejemplos anteriores */ $miCentro=Centro::Unico(); /* comprobemos el contenido del objeto */ print "<br>Estas son las propiedades del objeto miCentro<br>"; print "<pre>"; print var_dump($miCentro); print "</pre>"; /* vamos a crear el objetos de la clase Aula si miras el cdigo fuente de la clase Aula.class.php vers que el contructor agrega el valor correspondiente al identificador de cada objeto por esa razn cuando instanciemos objetos Aula vamos a incluir como argumento el valor de ese identificador */ /* un array nos puede ser util para crear masivamente las aulas */ $nombre_aulas=array('1 A','2 C','4 F','3 B','1B A'); /* Leeremos este array e iremos creando nuevos objetos de la clase Aula incluyendo el identificador que requiere el constructor */ for ($i=0;$i<sizeof($nombre_aulas);$i++){ /* Haremos que los nuevos objetos sean elementos de un array escalar Para ello solo tenemos que agregar [] a misAulas y cada objeto creado pasar a ser un elemento de ese array */ $misAulas[]=new Aula($nombre_aulas[$i]); } /* comprobemos el contenido de los objetos */ print "<br>Comprobacin de los objetos misAulas<br>"; print "<pre>"; print var_dump($misAulas); print "</pre>"; /* con una estrategia similar podremos crear los objetos de la clase Alumnos Ahora al instanciar cada objeto incliremos su nombre y apellido */ /* estos son los datos para los objetos alumnos */ $nombre_alumnos=array('Ana','Benito','Carla','Dionisio','Esther', 'Fernando','Guiomar','Herminio','Isabel','Jenaro'); $apellidos_alumnos=array('Jimnez','Iglesias','Husillos','Gmez','Fernndez', 'Escapa','Daz','Casado','Blzquez','Alonso'); for ($i=0;$i<sizeof($nombre_alumnos);$i++){ $misAlumnos[]=new Alumnos($nombre_alumnos[$i],$apellidos_alumnos[$i]); } /* comprobemos el contenido de los nuevos objetos */ print "<br>Comprobacin de los objetos misAlumnos<br>"; print "<pre>";
6 de 11
http://www.rinconastur.com/php/php88.php
ejemplo313.php
La ejecucin de este script nos permite comprobar que efectivamente se han creado los objetos pretendidos pero tiene un par de deficiencias manifiestas. Los diferentes tipos de objetos carecen de relacin. Hemos creado un centro, aulas y alumnos pero no tienen relacin alguna. Sus clases son independientes entre s. Los alumnos podran ser de ese u otro centro y lo mismo podra ocurrir con las aulas. Un segundo problema es que una vez que finaliza la ejecucin del script los objetos se destruyen y se pierde toda la informacin relativa a ellos. Vamos a tratar de ver a continuacin como evitar esa prdida.
Serializacin de objetos
Toda la informacin relativa a un objeto puede se transformada en una cadena mediante la funcin: serialize(nombre_del_objeto) donde nombre_del_objeto indica el objeto que pretendemos serializar. Los resultados de la serializacin son susceptibles de ser guardados en un fichero. De esta forma (puedes verlo en el ejemplo) los objetos pueden estar disponibles para su uso posterior. <?php /* para evitar reescribir incluimos el ejemplo anterior. Se ejecutar integramente */ include('ejemplo313.php'); /* visualizamos la serializacion de cada objeto */ print "<brEsta es la serializacin de misAlumnos<br>"; print serialize($misAlumnos); print "<brEsta es la serializacin de misAulas<br>"; print serialize($misAulas); print "<brEsta es la serializacin de misAulas<br>"; print serialize($miCentro); /* tambin podemos guardar cada objeto en una variable o en un array tal como hacemos en las instrucciones siguientes */ $serializado[] = serialize($misAlumnos); $serializado[] = serialize($misAulas); $serializado[] = serialize($miCentro); /* vamos a hacer una segunda serializacin. Serializaremos y guardaremos en una variable los contenidos del array resultante de la serializacin anterior */ $todo=serialize($serializado); /*guardaremos en un fichero (le ponemos como nombre Almacenado)la serializacin resultante */ file_put_contents('Almacenado', $todo); ?>
ejemplo314.php
7 de 11
http://www.rinconastur.com/php/php88.php
<?php /* la funcion autoload no va a incluir los ficheros con las clases necesarias */ function __autoload($clase){ include $clase.'.class.php'; } /* leemeos el fichero y recogemos su contenido en una variable */ $serializado = file_get_contents('Almacenado'); /* recuperamos la serializacin y visualizmos el contenido */ $todo_junto = unserialize($serializado); print "<pre>";var_dump($todo_junto);print "</pre>"; print "<br>Podemos leer el array mediante un bucle<br>"; for($i=0;$i<sizeof($todo_junto);$i++){ print "<pre>"; var_dump(unserialize($todo_junto[$i])); print "</pre>"; } ?>
ejemplo315.php
<?php /* la funcion autoload nos evita problemas a la hora de incluir los ficheros que contienen las clases requeridas */ function __autoload($clase){ include $clase.'.class.php'; } /*creamos un nuevo objeto asignndole valor al identificador al instanciar de la clase Aula Puedes visualizar el constructor desde enlace que hay aqui encima */ $miAula=new Aula('Primero B'); /* la propiedad profesor va a contener un objeto de la clase Profesores que crearemos incluyendo los argumentos que utiliza su constructor */ $miAula->profesor=new Profesores('Juan','Lpez','Matemticas'); /* agregamos un nuevo elemento al array materiales */ $miAula->materiales[]="Pizarra digital"; /* modificamos el nmero de puestos ecolares del aula */ $miAula->puestos=45; /* haremos una inclusin masiva de objetos de la clase Alumnos (tambin puedes ver en el enlace el cdigo fuente de esta clase) utilizamos como valores los nombres y apellidos contenidos en los array */ $nombre_alumnos=array('Ana','Benito','Carla','Dionisio','Esther','Fernando','Guiomar'); $apellidos_alumnos=array('Jimnez','Iglesias','Husillos','Gmez','Fernndez','Escapa','Daz'); for ($i=0;$i<sizeof($nombre_alumnos);$i++){
8 de 11
http://www.rinconastur.com/php/php88.php
/* la propiedad alumnos de la clase Aula es un array de ahi que incluyamos los nuevos objetos (Alumnos) en alumnos[] */ $miAula->alumnos[]=new Alumnos($nombre_alumnos[$i],$apellidos_alumnos[$i]); } /* Visualizamos el contenido de el objeto Aula que incluye otros objetos en sus propiedades */ print "<pre>"; print var_dump($miAula); print "</pre>"; ?>
ejemplo316.php
function modifica_alumnos($nom_act='',$ap_act='',$nom_nue='',$ap_nue='', $ruta_nue=''){ foreach ($this->alumnos as $ind=>$cont){ if($this->alumnos[$ind]->nombre==$nom_act && $this->alumnos[$ind]->apellidos==$ap_act){ if ($nom_nue !='')$this->alumnos[$ind]->nombre=$nom_nue; if ($ap_nue !='')$this->alumnos[$ind]->apellidos=$ap_nue; if ($ruta_nue !='')$this->alumnos[$ind]->ruta=$ruta_nue; } } } function borra_alumnos($nom_act='',$ap_act=''){ foreach ($this->alumnos as $ind=>$cont){ if($this->alumnos[$ind]->nombre==$nom_act && $this->alumnos[$ind]->apellidos==$ap_act){ unset($this->alumnos[$ind]); } } $this->alumnos=array_values($this->alumnos); } } /****** comienza una porcin de cdigo idntica a la del ejemplo anterior ******/ function __autoload($clase){ include $clase.'.class.php'; } $miAula=new AulaExtendida('Primero B'); //instanciamos la clase extendida para usar sus metodos $miAula->profesor=new Profesores('Juan','Lpez','Matemticas'); $miAula->materiales[]="Pizarra digital"; $miAula->puestos=45; $nombre_alumnos=array('Ana','Benito','Carla','Dionisio','Esther','Fernando','Guiomar'); $apellidos_alumnos=array('Jimnez','Iglesias','Husillos','Gmez','Fernndez','Escapa','Daz'); for ($i=0;$i<sizeof($nombre_alumnos);$i++){ $miAula->alumnos[]=new Alumnos($nombre_alumnos[$i],$apellidos_alumnos[$i]); } /**** acaba el cdigo idntica a la del ejemplo anterior ****/ $miAula->lista_profes(); print "<br /><br />"; /* lista alumnos */ $miAula->lista_alumnos(); print "<br />"; /* modifica alumnos sin busqueda*/ $miAula->alumnos[2]->nombre="Heliodoro"; $miAula->alumnos[3]->apellidos="de los Ros"; /* modifica alumnos con busqueda*/ $miAula->modifica_alumnos('Ana','Jimnez','Mara Gertrudis','Cucaln',48);
9 de 11
http://www.rinconastur.com/php/php88.php
/* borra alumnos con bsqueda*/ $miAula->borra_alumnos('Benito','Iglesias'); $miAula->lista_alumnos(); print "<br />"; print "<pre>"; print var_dump($miAula); print "</pre>"; print "<br><br>"; foreach ($miAula->alumnos[1] as $propiedad=>$valor){ print $propiedad."....".$valor."<br>"; } print "<br><br>"; foreach ($miAula->alumnos as $indice=>$objeto){ foreach ($objeto as $propiedad=>$valor){ print $indice."...".$propiedad."....".$valor."<br>"; } } $miAula->lista_profes1(); ?>
ejemplo317.php
<?php function __autoload($clase){ include $clase.'.class.php'; } /* crearemos un objeto de la clase Aula */ $aula=new Aula('Aula Magna'); print "<br><i>El identificador del aula recien creada es</i>: ".$aula->identificador; /* creamos tres objetos de la clase Alumnos */ $alumno[0]=new Alumnos ('Juan Carlos', 'Rodriguez'); $alumno[1]=new Alumnos ('Feliciano','Perez'); $alumno[2]=new Alumnos ('Luisindo','Orcasitas'); print "<br /><br /><i>Los objetos del array alumnos son estos</i>: "; /* El primer bucle nos permite leer los elementos del array (objetos) y el segundo extrae el nombre de la propiedad y su valor */ foreach ($alumno as $indice=>$objeto){ print "<br>".$indice." "; foreach ($objeto as $propiedad=>$valor){ print "<i>".$propiedad."</i>: ".$valor."; "; } } /* aadimos algunos objetos Alumnos a la propiedad alumnos de la clase Aula */ $aula->alumnos[]=$alumno[0]; $aula->alumnos[]=$alumno[1]; /* incluimos un nuevo objeto en el array alumnos de la clase Aula */ $aula->alumnos[]=new Alumnos ('Sindulfo','Yebra'); /* copiamos el objeto recien creado en un nuevo objeto */ $alumno[3]=$aula->alumnos[2]; print "<br /><br /><i>Los objetos de la propiedad alumnos de la clase Aula son estos</i>: "; foreach ($aula->alumnos as $indice=>$objeto){ print "<br>".$indice." "; foreach ($objeto as $propiedad=>$valor){ print "<i>".$propiedad."</i>: ".$valor."; "; } } /* modificamos nombres de alumnos tanto en el array alumnos como en los objetos aula->alumnos */ $aula->alumnos[0]->nombre="Tcito Petronio"; $alumno[1]->nombre="Francisca Maria"; $alumno[3]->nombre="Iigo Francisco"; print "<br><br><br>La modificacin se produce en ambos lugares<br><br>"; print "<br /><br /><i>Los objetos del array alumnos despus de los cambios son</i>: "; foreach ($alumno as $indice=>$objeto){ print "<br>".$indice." "; foreach ($objeto as $propiedad=>$valor){ print "<i>".$propiedad."</i>: ".$valor."; "; } } print "<br><br><i>En la clase Aula vemos esto despus de los cambios:</i>: "; foreach ($aula->alumnos as $indice=>$objeto){ print "<br>".$indice." "; foreach ($objeto as $propiedad=>$valor){ print "<i>".$propiedad."</i>: ".$valor."; "; } } /* eliminaremos algunos objetos. En un caso lo haremos en los de clase Aula y en otros en el array alumno */ unset($aula->alumnos[0]); unset($alumno[1]); unset($aula->alumnos[2]); print "<br><br><br>Despus de destruir objetos.<br>";
10 de 11
http://www.rinconastur.com/php/php88.php
print "<br>Tcito e Iigo en el objeto de la Clase Aula"; print "<br>Francisca en el objeto alumnos"; print "<br><br><i>Los objetos del array alumno despus de eliminar foreach ($alumno as $indice=>$objeto){ print "<br>".$indice." "; foreach ($objeto as $propiedad=>$valor){ print "<i>".$propiedad."</i>: ".$valor."; "; } } son</i>: ";
print "<br /><br /><i>Los objetos de la clase Aula despus de eliminar son estos</i>: "; foreach ($aula->alumnos as $indice=>$objeto){ print "<br>".$indice." "; foreach ($objeto as $propiedad=>$valor){ print "<i>".$propiedad."</i>: ".$valor."; "; } } ?>
ejemplo318.php
Ir a la pgina anterior
Ir a la pgina ndice
Ir a la pgina siguiente
11 de 11