Tengo 2 clases, la clase Persona y la clase Alumno (que hereda de Persona). He creado varios objetos de tipo Persona y algunos de tipo Alumno y los he metido dentro de un array.
Estas dos clases tienen métodos comunes (por ejemplo toString) y en cada una de ellas muestro una información. Al recorrer el array solo me muestra el toString de los objetos Persona... Cómo podría diferenciarlos para poder mostrarlos??
os dejo parte del código, gracias adelantadas ^^
Clase Alumno:
Código PHP:
function toString(){
$resultado = parent::toString() . "Está estudiando ". $this->getTitulacion();
$resultado += "\nEstá matriculado en: <br>";
foreach($this->asignaturas as $i => $j){
$resultado += $j->toString() . "<br>";
}
$resultado += "Total de creditos : " . $this->getNumCreditos();
return $resultado;
}
Código PHP:
function toString(){
return "Nombre: " . $this->nombre . " nacido el " . $this->fechaNacimiento->format("d/m/Y") ." <br>";
}
Código PHP:
include_once("Persona.php");
include_once("Alumno.php");
include_once("Asignatura.php");
include_once("Comparador.php");
$asig1 = new Asignatura('1','PDOO',6);
$asig2 = new Asignatura('2','FIS',6);
$asig3 = new Asignatura('3','SO',6);
$p1 = new Persona('Ana', new DateTime('25-0-1971'));
$p2 = new Persona('Juan', new DateTime('14-4-1990'));
$p3 = new Persona('Pepa', new DateTime('5-10-2000'));
$p4 = new Persona('Andrea', new DateTime('26-0-1975'));
$a1 = new Alumno('Maria', new DateTime('13-7-1960'), 'informática');
$a2 = new Alumno('Antonio', new DateTime('5-10-2000'), 'informática');
$a3 = new Alumno('Ana', new DateTime('10-6-1995'), 'informática');
try{
$a1->matricularAsignatura($asig1);
$a1->matricularAsignatura($asig2);
$a3->matricularAsignatura($asig2);
$a3->matricularAsignatura($asig3);
}catch (Exception $ex){
echo $ex->getMessage();
}
$personas = array();
array_push($personas, $p1);
array_push($personas, $p2);
array_push($personas, $p3);
array_push($personas, $p4);
array_push($personas, $a1);
array_push($personas, $a2);
array_push($personas, $a3);
foreach($personas as $p){
if($p instanceof Alumno)
echo $p->toString();
else
echo $p->toString();
}