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
graziecodice: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();

Rispondi quotando