Moin!
Es ist gültige PHP-Syntax. Vermutlich meint Tom, dass du öffentlichen Eigenschaften direkt Werte zuweist, statt über einen Setter zu gehen.
Es gibt doch mittlerweile sogar Setter und Getter in PHP, so dass man das falls gebraucht im Nachhinein ändern könnte ohne dass jemals jemand seinen Code der die Klasse benutzt ändern müsste, oder nicht?
Die magischen Methode sollte man nach Möglichkeit immer vermeiden zu benutzen. Sie sind sehr schwer testbar, insbesondere wenn sie schlecht geschrieben sind (so wie hier im Beispiel), weil sie sich nur um den Positiv-Fall kümmern. Darüber hinaus erschweren sie die Nutzung von Code-Completion in handelsüblichen Entwicklungsumgebungen.
class Calculator {
private $_printerDelegate;
function __get($name) {
if ($name == "printerDelegate") {
return $this->_printerDelegate;
}
}function __set($name, $value) {
if ($name == "printerDelegate") {
$this->_printerDelegate = $value;
}
}
//[...]
}
- Sven Rautenberg