hi,
Das $bar ganz wegzulassen und dann zu verwenden ist normalerweise nicht besonders sinnvoll oder praktisch. (Eine Ausnahme wäre Get/Set-Magie). Also Variante 1 scheidet schonmal aus. Es geht in diesem Zweig nur um die Varianten zwei und drei. $bar ist also in jedem Fall vorhanden. Variante drei hat ein überflüssiges "= null". Ebenso überflüssig wären andere Werte, die im Konstruktor sowieso überschrieben werden. In diesen beiden Fällen eine Zuweisung vorzunehmen, dient lediglich der Prinzip-Befriedigung.
Ach, das kann ich mir bei den Zend-Framework-Entwicklern garnicht vorstellen, dass es denen um Prinzipbefriedigung geht.
Wenn ich programmiere und dabei ein anderes System verwende, will ich nicht immer in dessen Code schauen, um wichtige Informationen zu bekommen. Wichtige Dinge, darunter zählen auch Default-Werte, sollten in der Inline-Dokumentation erwähnt sein, die mir meine IDE direkt in meinen Code einblendet, wenn ich irgendwas verwende. Und dann ist es auch praktisch egal, ob der Wert nun explizit oder erst im Konstruktor gesetzt wird.
Vermutlich geht es auch eher darum, in dem was man macht oder wie mans macht, konsitent zu sein.
mfg
tami