Mal was ganz anderes. Ein kleiner Programmierexkurs. Wenn Entwickler Klassen schreiben achten sie oft nicht genug auf die Sicherheit ihrer Attribute und deklarieren die einfach öffentlich:
Class Me extends Human {
public $mood = '';
}
Soweit so gut, aber dadurch kann jeder einfach meine Stimmung setzen? Ist das gut? Will ich das?
$Me = new Me;
$Me->mood = 'wildstyle';
Ich weiß nicht wies euch geht, aber ich find das ganz und gar nicht gut. Besser wäre, wenn das vorher nochmal geprüft wird, oder? Also:
Class Me extends Human {
protected $_mood = '';
public function setMood($mood) {
if (in_array(strtolower($mood),
array('wildstyle', 'mehr Unschönheiten')) {
//ich lass mir doch nicht die Laune vermiesen
return FALSE;
} else {
$this->_mood = strval($mood);
return TRUE;
}
}
}
Daraus resultiert dann:
$Me = new Me;
//geht nicht
$Me->setMood('wildstyle');
//geht
$Me->setMood('partypose');
Fühlt man sich dabei nicht gleich viel sicherer? Ja, Getter und Setter haben auch ihre Kritiker. Aber grad bei einem User-Objekt find ich es sehr gut wenn es sich quasi selbst verteidigt. Ihr nicht?

zuletzt kommentiert