Home > Refactoring > PHP Refactoring – Lez. 2: proprietà array di una classe

PHP Refactoring – Lez. 2: proprietà array di una classe

class Classe {

private $alunni;

public function addAlunni($valore, $chiave=null) {

if (is_array($valore)) {

foreach($valore as $posizione => $elemento){

if ($chiave!=null) {

$this->alunni[$posizione] =

$elemento;

} else {

$this->alunni[] = $elemento;

}

}

} else if ($chiave == null) {

$this->alunni[] = $valore;

} else {

$this->alunni[$chiave] = $valore;

}

}

 

public function removeAlunni($chiave=null) {

if (is_array($chiave)) {

foreach($chiave as $posizione=> $valore){

unset($this->alunni[$valore]);

}

} else if ($chiave == null) {

$this->alunni = array();

} else {

unset($this->alunni[$chiave]);

}

}

 

public function getAlunni($chiave=null) {

if (is_array($chiave)) {

$elementi = array();

foreach($chiave as $posizione=> $valore){

$elementi[$valore] = $this->alunni[$valore];

}

return $elementi;

} else if ($chiave == null) {

return $this->alunni;

}

return $this->alunni[$chiave];

}

}

$objClasse = new Classe();

$objClasse->addAlunni(”paolo”, “rossi”);

$objClasse->addAlunni(array(”giuseppe”,”francesco”));

$objClasse->addAlunni(array(”verdi”=>”giuseppe”,

“gigli”=>”francesco”), “chiavi”);

echo “recupero il valore con chiave ROSSI <br />”;

echo $objClasse->addAlunni(”rossi”);

echo “recupero i valori con chiave VERDI e ROSSI<br />”;

print_r($objClasse->getAlunni(array(”verdi”,”rossi”)));

echo “recupero tutta la proprietà ALUNNI<br />”;

print_r($objClasse->getAlunni());

echo “rimuovo il valore con chiave ROSSI <br />”;

$objClasse->removeAlunni(”rossi”);

print_r($objClasse->getAlunni());

echo “rimuovo i valori con chiave ROSSI e VERDI<br />”;

$objClasse->removeAlunni(array(”verdi”,”rossi”));

print_r($objClasse->getAlunni());

echo “resetto la proprietà ALUNNI<br />”;

$objClasse->removeAlunni();

print_r($objClasse->getAlunni());

E anche per oggi è tutto; alla prossima e buona programmazione a tutti.


  1. Nessun commento ancora...
  1. Nessun trackback ancora...
*