Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Przekazanie z funkcji do funkcji
Forum PHP.pl > Forum > Przedszkole
darney
Witam. Nie mogę sobie poradzić z przekazaniem pewnych parametrów do innej funkcji.
Chce aby funkcja display() w momencie kiedy case będzie miało wartość "kurs-komputerowy" przerzuciła swój wynik do funkcji displayContent

Wynikiem jest dalsza możliwość odwołania się do parametrów z funkcji display(). Problem polega na tym jeżeli odwołuję się do parametrów typu segment() z poza funkcji display() to otrzymuje komunikat
Fatal error: Call to a member function segment() on a non-object in /home/xxx/ftp/moje_projekty/xxx/classes/display.php on line 50

Jeżeli wartość funkcji displayContent przeniose w case 'kurs-komputerowy'; to problem znika. Tyle że w szablonie chciał bym kontrolować gdzie co ma być wyświetlane dlatego wynik z display chce przenieść do funkcji displayContent i nie moge sobie z tym poradzić.
Prośba o pomoc.
  1. class displays {
  2.  
  3. function dir() {
  4. define('BASE_PATH', dirname(realpath(__FILE__)) . '/');
  5. }
  6.  
  7. function display() {
  8. define('BASE_PATH', dirname(realpath(__FILE__)) . '/');
  9. include BASE_PATH . 'simpleUrl.php'; //includ wiadomo
  10. $url = new simpleUrl('/clean_urls'); //tworzenie nowego obiektu z klasy simpleURL
  11.  
  12.  
  13.  
  14. if (!$url->segment(1))
  15. $page = 'home';
  16. else
  17. $page = $url->segment(1);
  18.  
  19. switch ($page) {
  20. case 'home' :
  21. $this->content = 'Hoome Page';
  22. break;
  23. case 'kurs-komputerowy';
  24.  
  25. $this->contentKurs = 'active';
  26.  
  27.  
  28.  
  29. break;
  30. default :
  31. $this->notFound = '404 not found';
  32.  
  33. $this->obrazek = "bląd obrazkowy";
  34. break;
  35. }
  36. }
  37.  
  38. function displayImage() {
  39. echo $this->obrazek;
  40. }
  41.  
  42. function displayNotFound() {
  43. echo $this->notFound;
  44. }
  45.  
  46. function displayContent() {
  47. echo $this->content;
  48. if (!empty($this->contentKurs)) {
  49. ?> Kurs komputerowy
  50. <p><a href="/home">Strona glowna</a> / <?= $url->segment(1) ?></p> <br/>
  51.  
  52. <a href="/<?= $url->segment(1) ?>/kurs-komputerowy">kurs komputerowy</a>
  53. <?php
  54. $page = $url->segment(1);
  55. if ($page == "kurs-komputerowy") {
  56. include 'view/kursmm.php';
  57. } else {
  58. echo 'nie ma takiej strony';
  59. }
  60.  
  61. //echo 'ddd';
  62. }
  63. }
  64.  
  65. }
darko
Nigdy, przenigdy nie mieszaj tzw. logiki biznesowej z widokiem. Twoja "metoda" displayContent() nie ma prawa bytu. Podobnie nigdy nie stosuj w metodach echo, print itp. zwracaj wynik instrukcją return i dopiero tak zwrócony wynik - wyświetlaj w widoku. To, co tutaj zaprezentowałeś, to - wybacz - antykod, przykład, jak się nie powinno pisać kodu.
darney
zgadzam się. Dlatego zwróciłem się tutaj o pomoc by mnie naprostowano bo jeśli coś nie chodzi to znak że jest coś źle : )
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.