Path: csiph.com!news.swapon.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Arno Welzel Newsgroups: de.comp.lang.php Subject: Re: private property Date: Thu, 10 Dec 2015 16:31:56 +0100 Lines: 37 Message-ID: <56699AEC.6010200@arnowelzel.de> References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: individual.net whSJMcV6+jubM6rWgWie9gensEOQhyG54QQfMeM2OnacNfFwEh Cancel-Lock: sha1:Sp/wnf2NGtvjfI9v01PzajrJ2Pw= In-Reply-To: Xref: csiph.com de.comp.lang.php:3592 Am 2015-12-10 um 16:04 schrieb Jan Novak: > Am 10.12.2015 um 14:43 schrieb Niels Braczek: > >> Bis hierher soweit ok. >> >>> ... >>> class generalClassFunctions{ >>> public function show($htmlfile){ >>> global $_lang; >>> global $_rootdir; >> >> *Never* use global! >> Übergebe diese Daten explizit, entweder der Methode show() oder dem >> Konstruktor. > > Ist das nicht ein wenig aufwendig, das jeder Klasse jedesmal > mitzuteilen? Es handelt sich um die Sprachdatei, ist überall gleich und > unverändert (aber das nur am Rande). Ob aufwendig oder nicht: Eine Klasse sollte nicht voraussetzen, dass es bestimmte globale Variablen gibt - denn dann kann man auch gleich auf Klassen verzichten. Wenn es Dir zu umständlich ist, dass bei show() jedesmal zu übergeben, dann baue halt eine Methode, mit der man $_lang und $_rootdir einmalig setzen kann und speichere das dann lokal in der Klasse. Die Klasse selbst sollte aber niemals irgendwelche externen Abhängigkeiten in Form globaler Variablen haben. -- Arno Welzel http://arnowelzel.de http://de-rec-fahrrad.de http://fahrradzukunft.de