Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Funkcja
Forum PHP.pl > Forum > Przedszkole
artekp999
Stwierdziłem że aby zoptymalizować mój kod muszę poużywać funkcji. Mam problem z przypisywaniem zmiennej, jeżeli zamiast zmiennej $video_zdjecie używam echo wszystko działa ale ja potrzebuje żeby zapisywało to do zmiennej.
  1. // Początek kodu zaraz po <body>
  2. function video_czy_zdjecie($obrazek_spr)
  3. {
  4. $formaty_graficzne = array("jpg", "jpeg", "png", "gif", "tiff", "bmp", "svg");
  5. $format = explode(".", $obrazek_spr);
  6. $rozszerzenie = strtolower($format[1]);
  7.  
  8. if (in_array($rozszerzenie, $formaty_graficzne)) {
  9. $video_zdjecie = '<img src="/zdjecia/'.$obrazek_spr.'"/>';
  10. }
  11. else
  12. $video_zdjecie = '<iframe width="600" height="300" src="https://www.youtube.com/embed/'.$obrazek_spr.'" frameborder="0" allowfullscreen></iframe>';
  13. }
  14.  
  15. // kilkadziesiąt linijek dalej
  16. video_czy_zdjecie($rekord[obrazek]);
  17. echo $video_zdjecie;
rocktech.pl
Witam.

Funkcje powinny zwracać wartość a nie ją wyrzucać na ekran.

  1. function video_czy_zdjecie( $obrazek_spr ) {
  2.  
  3. return $video_zdjecie;
  4. }
  5.  
  6. echo video_czy_zdjecie ( $obrazek_spr );


Zerknij też na http://php.net/manual/en/functions.anonymous.php.
pamil
Twoja funkcja sparwdza ciąg między pierwszą kropką a drugą. Czyli "szablon.jpg.avi" w twoim skrypcie ma rozszerzenie jpg.
Po drugie, twoja funkcja video_czy_zdjecie() powinna zwracać 'video' lub 'zdjecie', sama konstrukcja lingwistyczna pytania "Viedo czy zdjęcie?" nakazuje albo odpowiedź "Video!", albo "Zdjęcie".
Ty za to chcesz zwrócić kod HTML który wyświetla dany zasób.
artekp999
Ok czyli muszę to inaczej rozwiązać

pamil
1. Z fragmentu tego kodu do dobrze wnioskujesz. Ale w połączeniu z całym kodem którego tu nie umieściłem działa dobrze, ponieważ wcześniej w formularzu inaczej sprawdza rozszerzenie. A z tym video_czy_zdjecie to było pisane na szybko aby znaleźć dobre rozwiązanie a później odpowiednio przerobić.
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.