Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] OOP Odwołanie się do tablicy z poza klasy
szczabik
post
Post #1





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


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
Go to the top of the page
+Quote Post
Spawnm
post
Post #2





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




ale w czym problem?
wyraź się jaśniej ...
Go to the top of the page
+Quote Post
wookieb
post
Post #3





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Zrobisz to tylko w konstruktorze klasy i przekazać do niego jako argument owa tablicę.
Metoda z global odpada z wiadomych powodów.


--------------------
Go to the top of the page
+Quote Post
szczabik
post
Post #4





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


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 ?

Ten post edytował szczabik 28.05.2009, 12:32:49
Go to the top of the page
+Quote Post
wookieb
post
Post #5





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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...

Ten post edytował wookieb 28.05.2009, 12:34:10


--------------------
Go to the top of the page
+Quote Post
szczabik
post
Post #6





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


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. ?>
Go to the top of the page
+Quote Post
wookieb
post
Post #7





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A pewnie, że mogę ci napisać... link do manuala ... http://pl.php.net/manual/pl/language.oop5.basic.php

Ten post edytował wookieb 28.05.2009, 12:40:28


--------------------
Go to the top of the page
+Quote Post
szczabik
post
Post #8





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


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. ?>
Go to the top of the page
+Quote Post
marcio
post
Post #9





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


  1. <?php
  2. $this -> tablica
  3. ?>

A gdziie masz pole tablica?


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
wookieb
post
Post #10





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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. ?>


--------------------
Go to the top of the page
+Quote Post
szczabik
post
Post #11





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


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. ?>
Go to the top of the page
+Quote Post
wookieb
post
Post #12





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




a $this kto doda? Czytalas w koncu te podstawy?? Jak widać nie...


--------------------
Go to the top of the page
+Quote Post
szczabik
post
Post #13





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


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. ?>
Go to the top of the page
+Quote Post
erix
post
Post #14





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
wookieb
post
Post #15





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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.


--------------------
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 - 20:18