Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] OOP Odwołanie się do tablicy z poza klasy
Forum PHP.pl > Forum > Przedszkole
szczabik
Mam taki kod

  1. <?php
  2. $tab['st100'] = 'Test';
  3. $tab['st101'] = 'Test1';
  4. $tab['st102'] = 'Test2';
  5. $tab['st103'] = 'Test3';
  6.  
  7. class wierszyki
  8. {
  9.  
  10. public $przyciski = array(
  11. 'Strona główna' => 'glowna.php',
  12. 'Kontakt'       => 'kontakt.php',
  13. 'Usługi'        => 'uslugi.php',
  14. 'Mapa strony'   => 'mapa.php'
  15. );
  16. public function Wyswietl()
  17. {
  18. $this->WyswietlMenu($this->przyciski);
  19. }
  20. public function WyswietlMenu($przyciski)
  21. {
  22. foreach ($przyciski AS $nazwa=>$url)
  23. {
  24. echo $nazwa.' '.$url;
  25. }
  26.  
  27. }
  28.  
  29. }
  30.  
  31. $admin = new wierszyki();
  32. $admin->Wyswietl();
  33. ?>


I chodzi o to że chciałem zrobić coś takiego
  1. <?php
  2. public $przyciski = array(
  3. $tab['st100'] => 'glowna.php',
  4. $tab['st101']  => 'kontakt.php',
  5. $tab['st102']  => 'uslugi.php',
  6. $tab['st103']  => 'mapa.php'
  7. );
  8. ?>




Proszę o wskazówki
Spawnm
ale w czym problem?
wyraź się jaśniej ...
wookieb
Zrobisz to tylko w konstruktorze klasy i przekazać do niego jako argument owa tablicę.
Metoda z global odpada z wiadomych powodów.
szczabik
Zrobiłem tak i nie działa.
Nie wiem czy do końca o to chodzi.

  1. <?php
  2. $tab['st100'] = 'Test';
  3. $tab['st101'] = 'Test1';
  4. $tab['st102'] = 'Test2';
  5. $tab['st103'] = 'Test3';
  6.  
  7. class wierszyki
  8. {
  9. function __construct($param){
  10. public $przyciski = array(
  11. $tab['st100'] => 'glowna.php',
  12. $tab['st101'] => 'kontakt.php',
  13. $tab['st102'] => 'uslugi.php',
  14. $tab['st103'] => 'mapa.php');
  15. }  
  16. }
  17.  
  18. $admin = new wierszyki($tab);
  19. ?>


Trzeba wcześniej użyć serialize ?
wookieb
PODSTAWY!
Argument nazywa sie $param a nie $tab

2) Gdzie ty wstawiasz public??
POZA konstruktor definiujesz zmienna
a potem
  1. <?php
  2. $this->przyciski =array(...);
  3. ?>

Robisz wszystko bezmyslnie...
szczabik
No własnie w programowani obiektowym jestem początkujący możesz napisać czy w dobrym kierunku próbuje z __construct oraz napisać co mam zrobić dalej pozmieniałem nazwy a mimo to nie działa
  1. <?php
  2. class wierszyki
  3. {
  4. function __construct($param){
  5. public $przyciski = array(
  6. $param['st100'] => 'glowna.php',
  7. $param['st101'] => 'kontakt.php',
  8. $param['st102'] => 'uslugi.php',
  9. $param['st103'] => 'mapa.php');
  10. }  
  11.  
  12.  
  13. }
  14.  
  15. $admin = new wierszyki($tab);
  16. ?>
wookieb
A pewnie, że mogę ci napisać... link do manuala ... http://pl.php.net/manual/pl/language.oop5.basic.php
szczabik
Zrobiłem tak
  1. <?php
  2. $tab['st100'] = 'Test';
  3. $tab['st101'] = 'Test1';
  4. $tab['st102'] = 'Test2';
  5. $tab['st103'] = 'Test3';
  6.  
  7. class wierszyki
  8. {
  9. public function tablica($tablica)
  10. {
  11. $this->tablica = $tablica;
  12. print_r($tablica);
  13.  
  14. }  
  15. }
  16.  
  17. $admin = new wierszyki();
  18. $admin->tablica($tab);
  19. ?>


No niby wszystko ok ale jak dam tak to już błąd
  1. <?php
  2. $tab['st100'] = 'Test';
  3. $tab['st101'] = 'Test1';
  4. $tab['st102'] = 'Test2';
  5. $tab['st103'] = 'Test3';
  6.  
  7. class wierszyki
  8. {
  9.  
  10. public $przyciski = array(
  11. $tablica['st100'] => 'glowna.php',
  12. $tablica['st101'] => 'kontakt.php',
  13. $tablica['st102'] => 'uslugi.php',
  14. $tablica['st103'] => 'mapa.php'
  15. );
  16.  
  17. public function tablica($tablica)
  18. {
  19. $this->tablica = $tablica;
  20. print_r($tablica);
  21.  
  22. }  
  23. }
  24.  
  25. $admin = new wierszyki();
  26. $admin->tablica($tab);
  27. ?>
marcio
  1. <?php
  2. $this -> tablica
  3. ?>

A gdziie masz pole tablica?
wookieb
Widze brak powodzenia...
  1. <?php
  2. class wierszyki
  3. {
  4.  
  5. public $przyciski;
  6.  
  7. public function tablica($tablica)
  8. {
  9. $this->przyciski =array(
  10. $tablica['st100'] => 'glowna.php',
  11. $tablica['st101'] => 'kontakt.php',
  12. $tablica['st102'] => 'uslugi.php',
  13. $tablica['st103'] => 'mapa.php'
  14. );
  15.  
  16. }  
  17. }
  18. ?>
szczabik
Wszystko pięknie ale gdy próbuje wyświetlić linki to wywala błąd
  1. <?php
  2. $tab['st100'] = 'Test';
  3. $tab['st101'] = 'Test1';
  4. $tab['st102'] = 'Test2';
  5. $tab['st103'] = 'Test3';
  6.  
  7. class wierszyki
  8. {
  9.  
  10. public $przyciski;
  11.  
  12. public function tablica($tablica)
  13. {
  14. $this->przyciski = array(
  15. $tablica['st100'] => 'glowna.php',
  16. $tablica['st101'] => 'kontakt.php',
  17. $tablica['st102'] => 'uslugi.php',
  18. $tablica['st103'] => 'mapa.php');
  19. }  
  20.  
  21. public function WyswietlMenu($przyciski)
  22. {
  23. foreach ($przyciski as $nazwa=>$url)
  24. {
  25. echo $nazwa.' '.$url;
  26. }
  27. }
  28. }
  29.  
  30. $admin = new wierszyki();
  31. $admin->tablica($tab);
  32. $admin->WyswietlMenu($this->przyciski);
  33. ?>
wookieb
a $this kto doda? Czytalas w koncu te podstawy?? Jak widać nie...
szczabik
Cytat(wookieb @ 28.05.2009, 14:47:52 ) *
a $this kto doda? Czytalas w koncu te podstawy?? Jak widać nie...


Podstawy czytałem ale nie do końca rozumiem dlatego pisze na forum. Ty odraz jak przeczytałeś podstawy to już wszystko wiedziałeś ?


Zrobiłem tak i mimo to nie działa.


  1. <?php
  2. public function WyswietlMenu($this->przyciski)
  3. {
  4. foreach ($przyciski as $nazwa=>$url)
  5. {
  6. echo $nazwa.' '.$url;
  7. }
  8.  
  9. }
  10. ?>
erix
Nie możesz tak podać...

Argument w deklaracji funkcji, to tylko deklaracja... Jeśli chcesz sprawdzać, czy jest domyślnie, to daj:
  1. <?php
  2. function asd($x = null){
  3.  
  4. if($x===null){
  5. // $this->przyciski
  6. }else{
  7. // $x
  8. }
  9. ?>


Kurs PHP obiektowego; nie truj czymś, co tylko marnuje nasz czas. Czemu marnuje? Bo o tym już napisano dziesiątki razy, są inne problemy, które czekają na rozwiązanie.
wookieb
Pewnie, że nie rozumiem wszystkiego odrazu. Ale najpierw przeglądałem dokładnie swój kod 100 razy sam dochodząc do pewnych wniosków. A ty gubisz się na każdym nawet najmniejszym kroku. Trochę więcej uwagi i będzie ok.
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.