Portál AbcLinuxu, 13. května 2025 21:45
define(DEF_OS_0, 'Linux'); class.. public function getName($k) { return 'DEF_OS_'.$k; } echo $class->getName(0); //dostanu string "DEF_OS_0" místo požadovaného "Linux"
Řešení dotazu:
class A { private $def_os; public function __constructor($def_os) { $this->def_os = $def_os; } public function formatName($k) { return $this->def_os . $k; } }To je kůli tomu, aby ta třída A nemusela znát, kde tu hodnotu uchováváš. Máš pak svobodu uchovávat tu hodnot i jinde než v DEF_OS, máš svobodu ji přejmenovat, nahradit. Můžeš zavolat dvě instance třídy A s různými hodnotami def_os, etc. Nevynucuješ, že aby si použitl třídu A, tak musíš mět někde definovanou konstantu DEF_OS. Pak je otázka názvosloví. Používání
getName()
jako getteru je samozřejmě zcela v souladu s OOP. Ale zrovna ten prefix get*
je obvykle používán ve smyslu získání nějaké hodnoty, bez parametru.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.