Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Jak wywołać obiekt ?
lled3
post
Post #1





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 7.12.2007

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


  1. <?
  2.  
  3. class slownie
  4. {
  5.  
  6. function zamien ($mnoznik="1",$liczba)
  7. {
  8. $cyfra_1=", jeden, dwa, trzy, cztery, pięć, sześć, siedem, osiem, dziewięć,
  9. dziesięć, jedenaście, dwanaście, trzynaście, czternaście, piętnaście,
  10. szesnaście, siedemnaście, osiemnaście, dziewiętnaście";
  11. $cyfra_2=",, dwadzieścia, trzydzieści, czterdzieści, pięćdziesiąt,
  12. sześćdziesiąt, siedemdziesiąt, osiemdziesiąt, dziewięćdziesiąt";
  13. $cyfra_3=", sto, dwieście, trzysta, czterysta, pięćset, sześćset, siedemset,
  14. osiemset, dziewięćset";
  15. $cyfra1=explode(",",$cyfra_1);
  16. $cyfra2=explode(",",$cyfra_2);
  17. $cyfra3=explode(",",$cyfra_3);
  18. unset($cyfra_1);
  19. unset($cyfra_2);
  20. unset($cyfra_3);
  21.  
  22. $l_p=floor($liczba/100/$mnoznik); //<- czyli mnożenie bez reszty!
  23. if ($l_p>0)
  24. {
  25. $wyswietl.=$cyfra3[$l_p];
  26. $liczba-=$l_p*100*$mnoznik;
  27. }
  28. unset($l_p);
  29. $l_p=floor($liczba/10/$mnoznik); //<- czyli mnożenie bez reszty!
  30. if ($l_p>1)
  31. {
  32. $wyswietl.=$cyfra2[$l_p];
  33. $liczba-=$l_p*10*$mnoznik ;
  34. }
  35. unset($l_p);
  36. $l_p=floor($liczba/$mnoznik); //<- czyli mnożenie bez reszty!
  37. if ($l_p>0)
  38. {
  39. $wyswietl.=$cyfra1[$l_p];
  40. }
  41. unset($l_p);
  42. return $wyswietl;
  43. }
  44. ///koniec funkcji zamień.
  45.  
  46. function fleksja($tabela="1",$mnoznik,$liczba)
  47. {
  48. $cyfra_1=", tysiąc, tysiące, tysięcy";
  49. $cyfra_2=", milion, miliony, milionów";
  50. $cyfra_3=", złoty, złote, złotych";
  51. $cyfra_4=", grosz, grosze, groszy";
  52. $cyfry[1]=explode(",",$cyfra_1);
  53. $cyfry[2]=explode(",",$cyfra_2);
  54. $cyfry[3]=explode(",",$cyfra_3);
  55. $cyfry[4]=explode(",",$cyfra_4);
  56. unset($cyfra_1);
  57. unset($cyfra_2);
  58. unset($cyfra_3);
  59. unset($cyfra_4);
  60. $l_p4=floor($liczba/$mnoznik);
  61. if (strlen($l_p4)>0 )
  62. {
  63. $l_p=floor($liczba/$mnoznik);
  64. $l_p=substr($l_p,strlen($l_p)-1);
  65. }
  66. if (strlen($l_p4)>1)
  67. {
  68. $l_p2=floor($liczba/$mnoznik);
  69. $l_p2=substr($l_p2,strlen($l_p2)-2,1);
  70. }
  71. if (strlen($l_p4)>2)
  72. {
  73. $l_p3=floor($liczba/$mnoznik);
  74. $l_p3=substr($l_p3,strlen($l_p3)-3,1);
  75. }
  76. if ($l_p==1 && (!$l_p2 or $l_p2==0) && (!$l_p3 or $lp_3==0))
  77. {
  78. return $cyfry[$tabela][1];
  79. }
  80. else if($l_p==1 && ($l_p2<>0 or $l_p3<>0) )
  81. {
  82. return $cyfry[$tabela][3];
  83. }
  84. else if ($l_p>1 && $l_p<5 && $l_p2<>1)
  85. {
  86. return $cyfry[$tabela][2];
  87. }
  88. else if($l_p>1 && $l_p<5 && $l_p2==1 )
  89. {
  90. return $cyfry[$tabela][3];
  91. }
  92. else if($l_p>4 or ($l_p==0 && ($l_p2>0 or $l_p3>0)))
  93. {
  94. return $cyfry[$tabela][3];
  95. }
  96. }
  97. ///koniec funkcji fleksja
  98.  
  99. function pokaz($liczba)
  100. {
  101. $liczba=number_format($liczba,2, '.', '');
  102. $do_zamiany=explode(".",$liczba);
  103. if ($do_zamiany[0]>0)
  104. {
  105. $slownie.=$this->zamien(1000000,$do_zamiany[0]);
  106. $slownie.=$this->fleksja(2,1000000,$do_zamiany[0]);
  107. $do_zamiany[0]%=1000000;
  108. $slownie.=$this->zamien(1000,$do_zamiany[0]);
  109. $slownie.=$this->fleksja(1,1000,$do_zamiany[0]);
  110. $do_zamiany[0]%=1000;
  111. $slownie.=$this->zamien(1,$do_zamiany[0]);
  112. $slownie.=$this->fleksja(3,1,$do_zamiany[0]);
  113. }
  114. if ($do_zamiany[1]>0)
  115. {
  116. $slownie.=$this->zamien(1,$do_zamiany[1]);
  117. $slownie.=$this->fleksja(4,1,$do_zamiany[1]);
  118. }
  119. return $slownie;
  120. }
  121. }
  122.  
  123. $klasa_slownie=new slownie;
  124. return $klasa_slownie->pokaz(1,22);
  125.  
  126. ?>


taki kod NIC nie wyświetla (IMG:style_emoticons/default/sad.gif)
Dlaczego ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
marcio
post
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Jak juz wywolujesz metode klasy wypadaloby dac echo/print zamiast return ale to szczegol a ta klasa to jakis potwor:]
Go to the top of the page
+Quote Post
lled3
post
Post #3





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 7.12.2007

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


czemu "jakiś potwór" (IMG:style_emoticons/default/smile.gif) ?
Go to the top of the page
+Quote Post
Fifi209
post
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(lled3 @ 8.07.2010, 08:41:50 ) *
czemu "jakiś potwór" (IMG:style_emoticons/default/smile.gif) ?

Bo jest napisana w taki sposób... hmm nieczytelny?
btw. pisz klasy zgodnie z PHP5 (IMG:style_emoticons/default/winksmiley.jpg)
a liczby nie przekazuj jako stringi

Ten post edytował fifi209 8.07.2010, 10:01:57
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 22:39