Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zmienna zmienia wartość po dziedziczeniu?
Forum PHP.pl > Forum > Przedszkole
omxd
Witam serdecznie,
w oop jestem swiezy stad pewnie problem jest blachy a wynika z mojej niewiedzy;)
Problem polega na tym ,ze zmienna $this->file_oryginal_name_finish; ma inna wartość w klasie uploadFiletj. '5129bb3d86.jpg' a inny gdy probuje wyswietlić ją w klasie firstReduction '677077df42.677077df42.'.Podpowie ktoś co robie zle?
  1. class uploadPhoto {
  2.  
  3. public $file_capacity; //pojemnosc pliku
  4. public $file_name; //nazwa pliku
  5. public $file_name_temp;//tymczasowa nazwa pliku
  6. public $name_miniature;//
  7. private $enlargement; //rozszerzenie
  8.  
  9.  
  10. public function __construct($file_capacity,$file_name,$file_name_temp){
  11. $this->file_capacity = $file_capacity;
  12. $this->file_name = $file_name;
  13. $this->file_name_temp = $file_name_temp;
  14.  
  15. //pojemnosc pliku
  16. $this->file_capacity_fin=round(($this->file_capacity/1048576),2).'MB';
  17. $this->max_size=round(($_POST['max_file_size']/1048576),3)."MB";;
  18. //czas
  19. $this->startsign=time() % (32 - 10);
  20.  
  21. }
  22. public function fileOryginalChangeName() {
  23. $this->randmd5a = md5(rand(100,999999999));
  24. $this->file_oryginal_name_temp = substr($this->randmd5a,$this->startsign,10);
  25.  
  26. $this->file_oryginal_name_finish = $this->file_oryginal_name_temp.".".$this->enlargement;
  27.  
  28.  
  29. echo $this->file_oryginal_name_finish;
  30. }
  31. }
  32. class firstReduction extends uploadPhoto{
  33.  
  34. public function nameHeirdom(){
  35. parent::fileOryginalChangeName();
  36.  
  37. echo $this->file_oryginal_name_finish;
  38. }
  39.  
  40.  
  41. }


z gory dzieki za pomoc
Crozin
1. Jakkolwiek zawszę krytykuję gdy ktoś używa polskiego nazewnictwa tak tutaj uprzejmie poproszę: pisz po polsku, bo angielski Ci wyjątkowo nie wychodzi.
2. Wiesz, że możesz używać zmiennych lokalnych w metodach, co nie?
3. Pokaż jeszcze jak próbujesz odpalić tego potworka, bo mi wygląda na to, że... wyświetla dwa razy to samo: http://ideone.com/sRFwN
omxd
1. obiecuje ze nie bede pisal po ang dopoki go nie poprawie;D
2.Teoretycznie wiem;)
3.dziwne ze w ideaonie wynik jest dobry a u mnie lipa.
wywolanie potwora;)
  1. $file_name_temp = $_FILES['plik']['tmp_name'];
  2. $file_capacity= $_FILES['plik']['size'];
  3. $file_name = $_FILES['plik']['name'];
  4.  
  5. $objuploadPhoto= new uploadPhoto($file_capacity,$file_name,$file_name_temp);
  6. $objuploadPhoto->fileOryginalChangeName();
  7.  
  8. $obj= new firstReduction($file_capacity,$file_name,$file_name_temp);
  9. $obj->nameHeirdom();

ostatni wynik:
fc192c0b9c.ac1ff50a57.
ac1ff50a57.

pzdr
Crozin
Cytat
1. obiecuje ze nie bede pisal po ang dopoki go nie poprawie;D
Obiecujesz, a 3 linijki niżej co widzę?
Cytat
3.dziwne ze w ideaonie wynik jest dobry a u mnie lipa.
Zauważyłeś może, że Ty tworzysz dwa obiekty i w efekcie dwa razy wywołujesz metodę uploadPhoto::fileOryginalChangeName() która to generuje losową nazwę (drugie wywołanie jest niejawne w postaci wywołania parent::fileOryginalChangeName(); wewnątrz firstReduction::nameHeirdom()).
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.