Salve a tutti.
Sono alle prime armi con PHP e sto cercando di imparare utilizzando manuali e tutorials.
Ovviamente cerco di creare degli scriptini facili e stupidi che mi permettano di capire il funzionamento del codice ecc.

Solitamente riesco a trovare gli errori in ciò che faccio [di solito si tratta di ";" dimenticati ecc.].
Tuttavia in relazione alle interfacce non sono in grado di capire dove io stia sbagliando.

Premetto che sono appassionato della serie "Misfits" e la utilizzo come pretesto per imparare l'OOP [catalogo i personaggi in base a nome, potere, colore degli occhi, ecc.].

In questo caso vorrei creare una funzione che restituisca una stringa in cui il nome e il potere del personaggio [oggetto della classe] vari a seconda dei parametri inseriti, mentre la stringa di testo riporti se il personaggio sia un eroe o un cattivo.

Credo sia più semplice postare la schifezza che ho fatto che descriverla.
Ho cercato di commentare il testo.
A mio discapito va il fatto che ho scritto il codice tutto da solo...

---



<?php


//Questo scriptino fa si che i caratteri accentatio vengano riconosciuti
header('Content-type: text/html;charset=utf-8');




//Dichiaro un'interfaccia "ruolo"
interface role {
abstract function ruolo();
}


//Genero la classe "misfits" i cui argomenti sono nome e potere
class misfits {

//Le proprietà della classe sono $name e $power
private $name;
private $power;

public function __construct ($name, $power){
$this->name = $name;
$this->power = $power;
print ("Ho appena creato un nuovo personaggio il cui nome è: $name");
}
}




//Genero la sottoclasse "heroes" che implementa la funzione "ruolo" dell'interfaccia "role"
class hero extends misfits implements role {

public function ruolo(){
return ($this->name . " è un eroe e il suo potere è: " . $this->power . "<br>");
}

}


//Genero la sottoclasse "villains" che implementa la funzione "ruolo" dell'interfaccia "role"
class villain extends misfits implements role {

public function ruolo(){
return ($this->name . " è un antagonista e il suo potere è: " . $this->power . "<br>");
}

}


?>


<html>
<head>
<title>INTERFACCE</title>
</head>
<body bgcolor="#000000" text="#FFFFFF">

<?php


$samuel = new hero ("Samuel", "Invisibilità");
print $samuel->ruolo();


?>

</body>
</html>



---

Qualsiasi consiglio e suggerimento sarà piu che benvenuto!!!
Grazie in anticipo per il vostro aiuto