Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z klasą
Forum PHP.pl > Forum > Przedszkole
neneth
Witam,
od dwóch dni męczę się z klasą, ponieważ chcę stworzyć menu z aktywną zakładką. Cały czas wyskakuje mi jakiś błąd. Proszę o pomoc. Oto ten kod:

  1.  
  2. class Strona
  3. {
  4. public $zawartosc;
  5. public $slowa_kluczowe = 'maturalneABC. Korepetycje, polski, język polski, matura, testy, opracowania, lektury.';
  6. public $przyciski = array('Strona główna' => 'glowna.php'.
  7. 'Kontakt' => 'kontakt.php'.
  8. 'Usługi' => 'uslugi.php'.
  9. 'Mapa strony'=> 'mapa.php'
  10. );
  11. public function _set($nazwa. $wartosc)
  12. {
  13. $this->$nazwa = $wartosc;
  14. }
  15. public function Wyswietl()
  16. {
  17. echo "<html>\n<head>\n";
  18. $this->WyswietlTytul();
  19. $this->Wyswietlslowa_kluczowe();
  20. echo"</head>\n<body>\n";
  21. $this->WyswietlNaglowek();
  22. $this->WyswietlMenu($this->przyciski);
  23. echo $this->zawartosc;
  24. echo "</body>\n</html>\n";
  25. }
  26.  
  27. public function WyswietlSlowaKluczowe()
  28.  
  29. {
  30. echo "meta name=\"keywords\" content=\"".htmlentities($this->slowa_kluczowe)."\" />";
  31. }
  32.  
  33. }
  34.  
  35. public function WyswietlMenu($przyciski)
  36. echo "<div id='menu'></div>";
  37. $szerokosc = 100/count($przyciski);
  38.  
  39. foreach ($przyciski as $nazwa=>$url)
  40. {
  41. $this->WyswietlPrzycisk($szerokosc. $nazwa. $url.
  42. !$this->CzyToAktualnyURL($url));
  43. )
  44. }
  45. public function CzyToAktualnyURL($url)
  46. {
  47. if(strpos($_SERVER['PHP_SELF']. $url)==false)
  48. {
  49. return false;
  50. }
  51. else
  52. {
  53. return true;
  54. }
  55. }
  56. public function WyswietlPrzycisk($szerokosc. $nazwa. $url. $active = true)
  57. {
  58. if($active)
  59. {
  60.  
  61. echo "<td width = '".htmlentities($szerokosc)."%'>
  62. <a href = '".htmlentities($url)."'>
  63. <img src = 'm-logo.gif' alt = '".htmlentities($nazwa)."' border = '0'></a>
  64. <a href = '".htmlentities($url)."'><span class='menu'>$nazwa</span></a></td>";
  65. }
  66. else
  67. {
  68. echo "<td width = '".htmlentities($szerokosc)."%'>
  69. <img src = 'boczne-logo.gif'>
  70. <span class='menu'>$nazwa</span></td>";
  71. }
  72. }
  73.  
  74.  
  75.  

Sephirus
"Jakiś błąd" - możesz go zacytować? smile.gif
redeemer
Czy ja dobrze widzę, że argumenty funkcji rozdzielasz kropkami? ohmy.gif
neneth
Błąd w liniach
  1. public $przyciski = array('Strona główna' => 'glowna.php'.

  1. public function _set($nazwa. $wartosc)

  1. public function WyswietlMenu($przyciski)
  2. echo "<div id='menu'></div>";

  1. foreach ($przyciski as $nazwa=>$url)
  2. {
  3. $this->WyswietlPrzycisk($szerokosc. $nazwa. $url.
  4. !$this->CzyToAktualnyURL($url));
  5. )


Będę wdzięczny za pomoc.
nospor
My się nie pytamy w jakich liniach masz bład, a jaki to błąd. Czy tak trudno napisać komunikat błędu?!

Przenoszę. A ty sie zapoznaj i zastosuj do tematu:
Temat: Jak poprawnie zada pytanie

ps: i zacznij wkoncu rozróżniac kropki od przecinkow. Bo niedosc ze w funkjach to robisz, to jeszcze elementy tablic rozdzielasz kropką...
neneth
Trochę poprawiłem kod, ale nadal są jakieś błędy.
  1.  
  2. class Strona
  3. {
  4. public $zawartosc;
  5. public $slowa_kluczowe = 'maturalneABC. Korepetycje, polski, język polski, matura, testy, opracowania, lektury.';
  6. public $przyciski = array('Strona główna' => 'glowna.php',
  7. 'Kontakt' => 'kontakt.php',
  8. 'Usługi' => 'uslugi.php',
  9. 'Mapa strony'=> 'mapa.php'
  10. );
  11. public function _set($nazwa, $wartosc)
  12. {
  13. $this->$nazwa = $wartosc;
  14. }
  15. public function Wyswietl()
  16. {
  17. echo "<html>\n<head>\n";
  18. $this->WyswietlTytul();
  19. $this->Wyswietlslowa_kluczowe();
  20. echo"</head>\n<body>\n";
  21. $this->WyswietlNaglowek();
  22. $this->WyswietlMenu($this->przyciski);
  23. echo $this->zawartosc;
  24. echo "</body>\n</html>\n";
  25. }
  26.  
  27. public function WyswietlSlowaKluczowe()
  28.  
  29. {
  30. echo "meta name=\"keywords\" content=\"".htmlentities($this->slowa_kluczowe)."\" />";
  31. }
  32.  
  33. }
  34. ?>
  35. <?php
  36. public function WyswietlMenu($przyciski),
  37. echo "<div id='menu'></div>";
  38. $szerokosc = 100/count($przyciski)
  39.  
  40. foreach ($przyciski as $nazwa=>$url)
  41. {
  42. $this->WyswietlPrzycisk($szerokosc. $nazwa. $url.
  43. !$this->CzyToAktualnyURL($url));
  44. )
  45. }
  46. public function CzyToAktualnyURL($url)
  47. {
  48. if(strpos($_SERVER['PHP_SELF']. $url)==false)
  49. {
  50. return false;
  51. }
  52. else
  53. {
  54. return true;
  55. }
  56. }
  57. public function WyswietlPrzycisk($szerokosc. $nazwa. $url. $active = true)
  58. {
  59. if($active)
  60. {
  61.  
  62. echo "<td width = '".htmlentities($szerokosc)."%'>
  63. <a href = '".htmlentities($url)."'>
  64. <img src = 'm-logo.gif' alt = '".htmlentities($nazwa)."' border = '0'></a>
  65. <a href = '".htmlentities($url)."'><span class='menu'>$nazwa</span></a></td>";
  66. }
  67. else
  68. {
  69. echo "<td width = '".htmlentities($szerokosc)."%'>
  70. <img src = 'boczne-logo.gif'>
  71. <span class='menu'>$nazwa</span></td>";
  72. }
  73. }
  74.  
  75.  
  76.  
Daiquiri
Cytat(neneth @ 27.10.2011, 11:24:02 ) *
Trochę poprawiłem kod, ale nadal są jakieś błędy.
Ustalmy jedno: albo zaczniesz wypisywać JAKIE błędy, albo zaczniemy zamykać tematy. Przecież nie będziemy się bawić w kotka i myszkę, skoro tekst błędu, albo jego objawy mogą przyspieszyć diagnozę o 500%.
cojack
Cytat(Daiquiri @ 27.10.2011, 11:25:49 ) *
Ustalmy jedno: albo zaczniesz wypisywać JAKIE błędy, albo zaczniemy zamykać tematy. Przecież nie będziemy się bawić w kotka i myszkę, skoro tekst błędu, albo jego objawy mogą przyspieszyć diagnozę o 500%.

Nie obiecuj nie obiecuj biggrin.gif

  1. WyswietlPrzycisk($szerokosc. $nazwa. $url. $active = true)

dalej masz kropki zamiast przecinków ;p
Helid

  1.  
  2. class Strona
  3. {
  4. public $zawartosc;
  5. public $slowa_kluczowe = 'maturalneABC. Korepetycje, polski, język polski, matura, testy, opracowania, lektury.';
  6. public $przyciski = array('Strona główna' => 'glowna.php',
  7. 'Kontakt' => 'kontakt.php',
  8. 'Usługi' => 'uslugi.php',
  9. 'Mapa strony'=> 'mapa.php'
  10. );
  11. public function _set($nazwa, $wartosc)
  12. {
  13. $this->$nazwa = $wartosc;
  14. }
  15. public function Wyswietl()
  16. {
  17. echo "<html>\n<head>\n";
  18. $this->WyswietlTytul();
  19. $this->Wyswietlslowa_kluczowe();
  20. echo"</head>\n<body>\n";
  21. $this->WyswietlNaglowek();
  22. $this->WyswietlMenu($this->przyciski);
  23. echo $this->zawartosc;
  24. echo "</body>\n</html>\n";
  25. }
  26.  
  27. public function WyswietlSlowaKluczowe()
  28.  
  29. {
  30. echo "meta name=\"keywords\" content=\"".htmlentities($this->slowa_kluczowe)."\" />";
  31. }
  32.  
  33. }
  34. ?>
  35. <?php
  36. public function WyswietlMenu($przyciski),
  37. echo "<div id='menu'></div>";
  38. $szerokosc = 100/count($przyciski)
  39.  
  40. foreach ($przyciski as $nazwa=>$url)
  41. {
  42. $return = $this->CzyToAktualnyURL($url);
  43. $this->WyswietlPrzycisk($szerokosc, $nazwa, $url,
  44. !$return);
  45. )
  46. }
  47. public function CzyToAktualnyURL($url)
  48. {
  49. if(strpos($_SERVER['PHP_SELF'], $url)==false)
  50. {
  51. return false;
  52. }
  53. else
  54. {
  55. return true;
  56. }
  57. }
  58. public function WyswietlPrzycisk($szerokosc, $nazwa, $url, $active = true)
  59. {
  60. if($active)
  61. {
  62.  
  63. echo "<td width = '".htmlentities($szerokosc)."%'>
  64. <a href = '".htmlentities($url)."'>
  65. <img src = 'm-logo.gif' alt = '".htmlentities($nazwa)."' border = '0'></a>
  66. <a href = '".htmlentities($url)."'><span class='menu'>$nazwa</span></a></td>";
  67. }
  68. else
  69. {
  70. echo "<td width = '".htmlentities($szerokosc)."%'>
  71. <img src = 'boczne-logo.gif'>
  72. <span class='menu'>$nazwa</span></td>";
  73. }
  74. }
  75.  
  76.  
  77.  

drozdii07
  1. public function _set($nazwa, $wartosc)
  2. {
  3. $this->$nazwa = $wartosc;
  4. }


Powinno być __set smile.gif
neneth
Witam,

poprawiłem kod zgodnie ze wskazówkami. Oto on:

  1.  
  2. class Strona
  3. {
  4. public $zawartosc;
  5. public $slowa_kluczowe = 'maturalneABC, Korepetycje, polski, język polski, matura, testy, opracowania, lektury.';
  6. public $przyciski = array('Strona główna' => 'glowna.php',
  7. 'Kontakt' => 'kontakt.php',
  8. 'Usługi' => 'uslugi.php',
  9. 'Mapa strony'=> 'mapa.php'
  10. );
  11. public function _set($nazwa, $wartosc)
  12. {
  13. $this->$nazwa = $wartosc;
  14. }
  15. public function Wyswietl()
  16. {
  17. echo "<html>\n<head>\n";
  18. $this->WyswietlTytul();
  19. $this->Wyswietlslowa_kluczowe();
  20. echo"</head>\n<body>\n";
  21. $this->WyswietlNaglowek();
  22. $this->WyswietlMenu($this->przyciski);
  23. echo $this->zawartosc;
  24. echo "</body>\n</html>\n";
  25. }
  26.  
  27. public function WyswietlSlowaKluczowe()
  28.  
  29. {
  30. echo "meta name=\"keywords\" content=\"".htmlentities($this->slowa_kluczowe)."\" />";
  31. }
  32.  
  33. }
  34. ?>
  35. <?php
  36. public function WyswietlMenu($przyciski),
  37. echo "<div id='menu'>
  38. $szerokosc = 100/count($przyciski)
  39.  
  40. foreach ($przyciski as $nazwa=>$url)
  41. {
  42. $this->WyswietlPrzycisk($szerokosc, $nazwa, $url,
  43. !$this->CzyToAktualnyURL($url);
  44. )
  45. }
  46. public function CzyToAktualnyURL($url)
  47. {
  48. if(strpos($_SERVER['PHP_SELF']. $url)==false)
  49. {
  50. return false;
  51. }
  52. else
  53. {
  54. return true;
  55. }
  56. }
  57. public function WyswietlPrzycisk($szerokosc, $nazwa, $url, $active = true)
  58. {
  59. if($active)
  60. {
  61.  
  62. echo "<td width = '".htmlentities($szerokosc)."%'>
  63. <a href = '".htmlentities($url)."'>
  64. <img src = 'm-logo.gif' alt = '".htmlentities($nazwa)."' border = '0'></a>
  65. <a href = '".htmlentities($url)."'><span class='menu'>$nazwa</span></a></td>";
  66. }
  67. else
  68. {
  69. echo "<td width = '".htmlentities($szerokosc),"%'>
  70. <img src = 'boczne-logo.gif'>
  71. <span class='menu'>$nazwa</span></td>";
  72. }
  73. }
  74.  
  75. </div>"
  76.  


I teraz wyskakuje mi błąd Parse error: syntax error, unexpected T_PUBLIC in C:\xampp\htdocs\Polski\strona.php on line 44

chodzi o linijkę:

  1. public function WyswietlMenu($przyciski),
  2.  


Cy mogę prosić o wyjaśnienie?
Daiquiri
Forum to nie parser! Zobacz jak się koloruje składnia.
nospor
@neneth, przepraszam cie, ale już przeginasz. Forum to nie parser.

Zapoznaj sie z takimi podstawami, jak budować funkcje, jak rozdzielać argumenty, jak zaczynać bloki funkcji. To są podstawy, które masz znać zanim przyjdziesz na forum z pytaniem.
Masz linijkę z błędem i się jej przyjrzyj czy jest poprawna, bo na pierwszy rzut oka widać ze nie.

Dodatkowo policz też liczbę nawiasów otwierających i zamykających bo zamykasz klasę zanim jeszcze skonczyles pisac wszystkie metody w tej klasie.
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.