Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Zmienna klasy jako tablica?
Ziels
post
Post #1





Grupa: Zarejestrowani
Postów: 235
Pomógł: 2
Dołączył: 30.06.2006

Ostrzeżenie: (0%)
-----


Witam - Napisałem klasę do ładowania modułów, że potrzebuje sobie gdzieś zapisywać które z nich załadowano to uznałem że najlepiej będzie zapisywać je do tablicy zmiennej klasy.

Niestety przy takim kodzie:...

  1. <?php
  2. class modules{
  3. var $loaded;
  4.  
  5. function do_array(){
  6. $this -> loaded = array();
  7. }
  8. function load( $name ){
  9. if($this -> is_enabled($name) == true){
  10. $file = 'modules/' . $name . '.php';
  11. if(file_exists($file)){
  12. return include_once"$file";
  13. $this -> loaded[] = $name;
  14. }else{
  15. return false;
  16. }
  17. }else{
  18. return false;
  19. }
  20. }
  21. }
  22. $modules = &new modules;
  23. $modules -> do_array();
  24. $modules -> load('jakiśmoduł');
  25. $modules -> load('jakiśmoduł2');
  26. $modules -> load('jakiśmoduł3');
  27. $modules -> load('jakiśmoduł4');
  28. echo count($modules->loaded);
  29. ?>


...otrzymuję 0, mimo że wszystko ładuje się jak trzeba, ktoś wie może dlaczego zmienna nie jest przekształcana w tablicę?
Go to the top of the page
+Quote Post
siemakuba
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


linia 12 i 13:
  1. <?php
  2. return include_once"$file";
  3. $this -> loaded[] = $name;
  4. ?>
w lini 13 chcesz dodać załadowany moduł do tablicy, ale niestety w lini 12 zakończyłeś wykonywanie metody za pomocą instrukcji return.

edit: @Adrian Staniszewski: owszem, wystarczy do zainicjowania tablicy. Skrypt ciągle nie będzie działał z powodu, który podałem wyżej.

pozdr.

Ten post edytował siemakuba 24.10.2006, 19:39:16
Go to the top of the page
+Quote Post
Adrian Staniszew...
post
Post #3





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 17.10.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


  1. <?php
  2. class modules{
  3. var $loaded = array();
  4. }
  5. ?>


Wystarczy ze tak dasz i powinno dzialac. - choc sprawdzalem twoj kod i też mi działał na localhost


--------------------
Programy antywirusowe
Komputery, internet
Twój Słownik OnLine
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 17:15