Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z klasą
Forum PHP.pl > Forum > Przedszkole
bobens_83
Witam. Mam taki problem. Kod wyswietla naglowek i menu, ale miedzy nimi pojawia sie komunikat:
Cytat
Warning: Missing argument 1 for Szablon::Wyswietl_menu() in c:\wamp\www\i_p\szablon.inc on line 31


szablon.inc:
  1. <?php
  2. class Szablon
  3. {
  4. public $zawartosc;
  5. public $przyciski = array( 'Strona główna' => 'glowna.php',
  6.  'Wyszukaj osobę' => 'wyszukaj.php',
  7.  'Dodaj osobę' => 'dodaj.php'
  8. );
  9. public $poczatek = "<html>n<head>n<meta http-equiv="content-type" content="text/html"; charset="iso-8559-2">
  10.  <link rel="stylesheet" href="style.css" type="text/css">n
  11.  n</head>n<body>n<center>n";
  12. public $koniec  = "n</center>n</body>n</html>";
  13.  
  14. public function Wyswietl()
  15. {
  16. echo $this->poczatek;
  17. $this->Wyswietl_naglowek();
  18. $this->Wyswietl_menu();
  19. echo $this->koniec;
  20. }
  21.  
  22. public function Wyswietl_naglowek()
  23. {
  24. ?>
  25. <table id="nag">
  26. <tr><td><h3>Dodawarko-wyszukiwarka osób</h3></td></tr>
  27. </table>
  28. <?php
  29. }
  30.  
  31. public function Wyswietl_menu($przyciski)
  32. {
  33. $szerokosc = 100/count($this->przyciski);
  34. echo "<table id="przyc">n<tr>";
  35. foreach( $this->przyciski as $nazwa=>$url )
  36. {
  37. $this->Wyswietl_przycisk($szerokosc, $nazwa, $url);
  38. }
  39. echo "</tr>n</table>n";
  40. }
  41.  
  42. public function Wyswietl_przycisk( $szerokosc, $nazwa, $url )
  43. {
  44. echo "<td width="".$szerokosc."%"><a href="".$url."">".$nazwa."</a></td>";
  45. }
  46.  
  47. }
  48. ?>

index.php:
  1. <?php
  2.  
  3. require( 'szablon.inc' );
  4. $glowna = new Szablon();
  5.  
  6. $glowna->Wyswietl();
  7.  
  8. ?>


Prosze o rzut oka i komentarz. Pzdrawiam.
sf
http://slowniki.onet.pl i przetlumacz sobie co znaczy ten komunikat, a potem popatrz na ta funkcje i wszystko bedzie jasne smile.gif
ghostrider
tutaj:
  1. <?php
  2. function Wyswietl_menu($przyciski)
  3. ?>

zamineń na:
  1. <?php
  2. function Wyswietl_menu()
  3. ?>


funkcja oczekuje 1 argsa, i go nie dostaje, a ztego co widz to i tak jest on zbędny.
bobens_83
Wybaczcie ale jestem swiezy w php, a OOP jest dla mnie ciagle czyms tajemniczym aarambo.gif Korzystam z ksiazki Vademecum Prof. Chcialbym aby parametr przekazany do funkcji uczynil ja 'uniwersalna', czyli ze poprostu moge tu wstawic inna tablice z guzikami. Myslalem ze po to jest ten parametr. Jak mialbym zmienic ten kod aby stal sie wlasnie takim 'uniwersalnym' kodem? Dziekuje za odpowiedzi.
ghostrider
na szybko:
  1. <?php
  2.  
  3. public function Wyswietl_menu($przyciski=NULL)
  4. {
  5. if ($przyciski === NULL) $przyciski = $this->przyciski;
  6. $szerokosc = 100/count($przyciski);
  7. echo "<table id="przyc">n<tr>";
  8. foreach( $przyciski as $nazwa=>$url )
  9. {
  10. $this->Wyswietl_przycisk($szerokosc, $nazwa, $url);
  11. }
  12. echo "</tr>n</table>n";
  13. }
  14. ?>


[OT] proponuje ankiete: Czy wybaczymy bobens_83 ze jest świerzy w php[/OT] winksmiley.jpg
bobens_83
Super, dziala, kodzik pierwsza klasa smile.gif Tylko 2 pytania.
1) Czy
Cytat
$przyciski=NULL
czya sie "zmiennej $przyciski nie jest przyporzadkowana zadna wartosc)
2)
Cytat
$przycisk === NULL
- "zmienna nie zawiera zadnego elementu"

Czym te 2 kody sie roznia? Bo dla mnie to to samo blink.gif Jak mam interpretowac 1 i 2. Pozdrawiam.
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.