Autor | Zpráva | ||
---|---|---|---|
PHP_Nemaster Profil |
Dobrý den, řeším jeden problém a nevím co s tím: jak uchovat hodnoty v poli nastavené v jiném souboru?
Mám hlavní třídu ( Core ) v samostatném souboru a v ní prázdné pole s nastaveními, která pak nastavuji v konfiguračním souboru. Třídu core dědí jiné třídy, které mají samostatné soubory. Problém je však ten, že když includuji konfiguraci a dědící třídu do nějakého souboru a pak vytvořím instanci té třídy, tak nevidí ty hodnoty nastavené v konfiguraci, ale bere ty prázdné hodnoty z Core. Nevím, jestli je to dobře pochopitelné, dále je příklad: V core.php mám prázdné pole s hodnotami nastavení public $settings = array( "articles_per_page" => '', "comments_per_page" => '' ); Tu třídu pak includuji do souboru config.php, ve kterém nastavuji hodnoty. Config.php: include "core.php"; $core = new Core(); $core->settings['articles_per_page'] = 5; $core->settings['comments_per_page'] = 30; Když pak v tom souboru vypíšu hodnoty pole settings, mají tu hodnotu, kterou jsem nastavil. V samostatném souboru pak mám např. třídu Article, která dědí Core. class Article extends Core {} A pak mám nějaký soubor využívající třídu article, ve kterém chci zobrazit hodnoty nastavení. Z nějakého důvodu však program ignoruje to, že už jsem nastavil hodnoty v config.php a zobrazí prázdné hodnoty jako v Core. include "config.php"; include "article.php"; $ar = new Article(); echo $ar->settings['comments_per_page']; // vypíše prázdnou hodnotu Nevíte, jak udělat, aby se braly hodnoty nastavené v config.php a ne přímo z hlavní třídy? Předem děkuji za odpověd' |
||
Seith Profil |
#2 · Zasláno: 1. 7. 2012, 17:28:15
Soubor core.php:
class Core { public static $settings = array( "articles_per_page" => '', "comments_per_page" => '' ); } Soubor config.php: include "core.php"; Core::$settings["articles_per_page"] = 5; Soubor article.php: class Article extends Core { public function test() { echo($this::$settings['articles_per_page']); } } Užití: include "config.php"; include "article.php"; $article = new Article(); $article->test(); |
||
PHP_Nemaster Profil |
#3 · Zasláno: 2. 7. 2012, 20:39:01
Děkuji.
|
||
Časová prodleva: 12 let
|
0