Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Przekazanie z funkcji do funkcji
darney
post
Post #1





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 21.08.2010
Skąd: Gdynia

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


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


Ten post edytował darney 22.05.2011, 10:36:17
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
darko
post
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


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.


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
darney
post
Post #3





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 21.08.2010
Skąd: Gdynia

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


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 : )
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: 22.08.2025 - 09:10