Salve ho cambiato uno scriptino, per OOP, preso da un libro della hoepli.
Nella classe c'è una funzione che deve settare il valore introdotto come data .
strtotime($valore_passato) , Se la risposta è -1 il valore introdotto è errato!
Invece posso passargli qualsiasi stringa, se la beve e la pubblica!
ecco il codice
codice:
class proObj {
private $_propieta = array(
'nome' => null,
'data' => null
);
public function _get($propNome) {
if(!array_key_exists($propNome, $this->_propieta)) {
throw new Exception('Valore della proprietà non valido!');
}
if(method_exists($this, '_get' . $propNome)) {
return call_user_func(array($this, '_get' . $propNome));
} else {
return $this->_propieta[$propNome];
}
}
public function _set($propNome, $value) {
if(!array_key_exists($propNome, $this->_propieta)) {
throw new Exception("Valore " . $propNome . " non valido!");
}
if(method_exists($this, '_set'.$propNome)) {
return call_user_func(
array($this, '_set'.$propNome),
$value
);
} else {
$this->_propieta[$propNome] = $value;
}
}
public function _setDataNascita($dn) {
if(strtotime($dn) == -1) {
throw new Exception("La data di nascita deve essere valida!");
}
$this->_propieta['data'] = $dn;
}
public function saluto() {
echo "Salve! il mio nome è $this->nome. Sono nato il $this->data";
}
}
############################ RICHIAMO per visualizzare
$obj = new proObj();
$obj->nome = "ZZZ";
$obj->data = 'March 5, 1987';
$obj->saluto();
echo "
";
$obj2 = new proObj();
$obj2->nome = "Altro nome";
$obj2->data = "blue"; //_setDataNascita è richimata da _set .... 'blue'; //throws exception
$obj2->saluto();
grazie