Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Zasięg zmiennych w funkcjach
Forum PHP.pl > Forum > Przedszkole
maniak11
Witam wszystkich, napisałem sobie kilka funkcji rysujących każda inną figurę geometryczną np. prostokat(), linia() itd., to wszystko mam w pliku functions.php, natomiast plik rysujący figury to draw.php ktory ma nic więcej tylko:
//plik draw.php

  1. <?php
  2. header("Content-type: image/png");
  3. include('include/functions.php');
  4.  
  5.  
  6. $kolor = '100,232,245';
  7. elipsa($kolor);
  8. prostokat($kolor);
  9.  
  10. imagepng($temp);
  11. imagedestroy($temp);
  12. ?>



//plik functions.php

  1. <?php
  2. function prostokat($color) {
  3. global $CONFIG, $temp;
  4.  
  5. $q = mysql_query("SELECT * FROM warstwa_glowna WHERE Nazwa_zasobu = 'prostokat'");
  6. $cnt = mysql_num_rows($q);
  7. while ($row = mysql_fetch_array($q))
  8. $wymiar[] = $row['Polozenie_zasobu'];
  9.  
  10. $temp = imagecreatetruecolor($CONFIG['pic_szer'], $CONFIG['pic_wys']);
  11. $cz =  imagecolorallocate($temp, 255, 0, 0);
  12. $bi =  imagecolorallocate($temp, 255, 255, 255);
  13. $k = explode(',' , $color);
  14. .
  15. . // kod usunięty w celu większej czytelności
  16. .
  17. .
  18.  
  19. if ($color == brak)
  20. imagerectangle($temp, $x[$i+1], $y[$i+1], $x[$i+2], $y[$i+2], $bi);
  21. else
  22. imagefilledrectangle($temp, $x[$i+1], $y[$i+1], $x[$i+2], $y[$i+2], $color2);
  23. }
  24.  
  25. // imagepng($temp);  zakomentowalem to bo w pliku 
  26. // imagedestroy($temp);
  27.  
  28. }//koniec funkcji prostokat
  29.  
  30.  
  31. function elipsa($color) {
  32. global $CONFIG, $temp;
  33. $q = mysql_query("SELECT * FROM warstwa_glowna WHERE Nazwa_zasobu = 'elipsa'");
  34. $cnt = mysql_num_rows($q);
  35. while ($row = mysql_fetch_array($q))
  36. $wymiar[] = $row['Polozenie_zasobu'];
  37.  
  38. $temp = imagecreatetruecolor($CONFIG['pic_szer'], $CONFIG['pic_wys']);
  39. .
  40. .
  41. . // kod usunięty w celu większej czytelności
  42. .
  43.  
  44. if ($color == brak)
  45. return imageellipse($temp, $x[$i+1], $y[$i+1], $szer[$i+1], $wys[$i+1], $bi);
  46. else
  47. return imagefilledellipse($temp, $x[$i+1], $y[$i+1], $szer[$i+1], $wys[$i+1], $color2);
  48.  
  49. }
  50. // imagepng($temp);
  51. // imagedestroy($temp);
  52. } //koniec elipsa
  53. ?>



I teraz chciałbym żeby po wywołaniu tego pliku draw.php rysował mi wszystkie figury których funkcje tam wywołam tymczasem po wywyłaniu

  1. <?php
  2. elipsa($kolor);
  3. prostokat($kolor);
  4.  
  5.  
  6. imagepng($temp);
  7. imagedestroy($temp);
  8. ?>


rysuje mi tylko same prostokąty (elipsy już nie) sad.gif Dlaczego skoro zmienna $temp jest zadeklarowana jako globalna?? Bardzo proszę o jakąś pomoc
misiek172
no włąśnie globalna a po co? przez to funkcje ja modyfikują, a nie powinny
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.