Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Czy ten kod może być zapisany w taki sposób?
Forum PHP.pl > Forum > Przedszkole
crazy_programmer
Cześć wszystkim. Właśnie kończę się uczyć pierwszego rozdziału z książki "PHP I MySQL Vademecum Profesionalisty Wydanie III" i mam do was pewne pytnako. Czy ten kod może być zapisany w taki sposób?

  1. $iloscopon = (integer)$_POST['iloscopon'];
  2. $iloscoleju = (integer)$_POST['iloscoleju'];
  3. $iloscswiec = (integer)$_POST['iloscswiec'];
  4.  
  5. $ilosc = 0;
  6. $wartosc = 0;
  7. $podatekvat = 0.22;
  8.  
  9. define('CENAOPON', 250);
  10. define('CENAOLEJU', 100);
  11. define('CENASWIEC', 50);
  12.  
  13. $ilosc = $iloscopon + $iloscoleju + $iloscswiec;
  14. $wartosc = CENAOPON * $iloscopon
  15. + CENAOLEJU * $iloscoleju
  16. + CENASWIEC * $iloscswiec;
  17.  
  18. if( $ilosc > 0 && $wartosc > 0)
  19. {
  20. echo 'Zamówienie zostało przjęte o '.date('H:i, jS F').'<br />';
  21. echo 'Zostały zamówione następujące produkty: '.'<br />'
  22. $iloscopon.' opon(y)<br />'
  23. $iloscoleju.' butelki oleju<br />'
  24. $iloscswiec.' sztuk swiec<br />';
  25. echo 'Cena netto: '.number_format($wartosc, 2).'<br />';
  26. echo 'Cena brutto: '.number_format($wartosc * (1 + $podatekvat), 2);
  27. }
  28. else
  29. {
  30. echo 'Nie pwrowadziłeś żadnych danych';
  31. }
vermis
A co konkretnie masz na myśli?
crazy_programmer
Wcześniej miałem pewien problem. Otóż gdy zmienne utworzyłem w dalszej części skryptu a na początku użyłem instrukcji warunkowej:

  1. if($ilosc>0 && $wartosc>0)
  2. echo 'Zamowienie zostało przyjęte o '.date('H:i, jS F');


Instrukcja ta była umieszczona na początku skryptu. Cały czas wywałało mi błąd. Gdy jednak przeniosłem zmienne na początek skryptu instrukcja warunkowa zaczęła działać. O co chodzi?
vermis
Chodzi o to, że zmienne przed użyciem muszą zostać zainicjowane. Jeśli ta instrukcja był na początku to porównywałeś zmienne, które nie istnieją stąd błąd (pewnie że zmienna nie istnieje).
Crozin
  1. $podatekvat = 0.22;
Chciałbyś 22% co nie? smile.gif 23% mamy.
Cytat
Instrukcja ta była umieszczona na początku skryptu. Cały czas wywałało mi błąd. Gdy jednak przeniosłem zmienne na początek skryptu instrukcja warunkowa zaczęła działać. O co chodzi?
Pokaż dokładny kod jaki miałeś.

Hint:
1. Cena* nie powinna być stałą, a normalną zmienną.
2. Przestrzegaj konwencji nazewnictwa, czyli: $nazwaZmiennej, NAZWA_STAŁEJ
crazy_programmer
  1.  
  2. $iloscopon = (integer)$_POST['iloscopon'];
  3. $iloscoleju = (integer)$_POST['iloscoleju'];
  4. $iloscswiec = (integer)$_POST['iloscswiec'];
  5.  
  6. if($ilosc > 0 && $wartosc > 0)
  7. echo 'Zamówienie zostało przyjęte o '.data('H:i, jS F');
  8.  
  9. echo $iloscopon.' opon<br />';
  10. echo $iloscoleju.' oleju<br />';
  11. echo $iloscswiec.' swiec<br />';
  12.  
  13.  
  14. $ilosc = 0;
  15. $wartosc = 0.00;
  16.  
  17.  
  18. define("CENAOPON", 150);
  19. define("CENAOLEJU", 25);
  20. define("CENASWIEC", 50);
  21.  
  22. $ilosc = $iloscopon + $iloscoleju + $iloscswiec;
  23.  
  24. echo 'Zamówionych produktów: '.$ilosc.'<br />';
  25.  
  26. $wartosc = $iloscopon * CENAOPON
  27. + $iloscoleju * CENAOLEJU
  28. + $iloscswiec * CENASWIEC;
  29.  
  30. echo 'Cena Netto: '.number_format($wartosc, 2).' PLN<br />';
  31.  
  32. $podatekvat = 0.22;
  33. $wartosc = $wartosc * (1 + $podatekvat);
  34.  
  35. echo 'Cena Brutto: '.number_format($wartosc, 2).' PLN<br />';
  36.  


Wykonująć instrukcję warunkową if i używając funkcji data(), wyświetlany jest blą nieznana zmienna.
Crozin
1. Używałeś zmiennych przed ich zadeklarowaniem ($ilosc i $wartosc nie istnieją w momencie ich użycia w linii #6). PHP nie traktuje tego jako błąd (a powinno) i w tle utworzy takie zmienne z wartością 0, co sprawi, że warunek nigdy nie zostanie spełniony.
2. Wszystkie instrukcje kontroler (if, else, for, while, foreach itd.) odnoszą się do dokładnie jednej instrukcji po nich lub jednego bloku kodu ( { ... } ).
potreb
You are crazy_programmer. A gdzie masz wcześniej zdefiniowaną zmienną wartosc? Sprawdzasz zmienna wartosc, która nie istnieje.
crazy_programmer
Dzięki za wytłumaczenie smile.gif Przpraszam że zadaje takie proste pytania - dopiero się uczę smile.gif
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.