Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Zmienna klasy jako tablica?
Forum PHP.pl > Forum > Przedszkole
Ziels
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ę?
siemakuba
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.
Adrian Staniszewski
  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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.