Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dlaczego wykonują się instrukcje które nie powinny?
centrum2954
post 4.03.2007, 09:54:06
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 8.04.2006

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


Witam

Z góry przepraszam za temat, ale nie wiem jak nazwać ten problem

A więc tak:

Jakaś pętla
  1. <?php
  2. {
  3.  
  4. case 'la':
  5.  
  6. LA LA LA LA
  7.  
  8. break;
  9.  
  10. case 'd':
  11. if ($ddk==$ddi) {
  12. $dda.=" + " . $dds . " + " . $ddp . ":";
  13. $dde = explode(":", $dda);
  14. print ($dde[$ddi]);
  15. $ddi++;
  16. }
  17. break;
  18.  
  19. }
  20. ?>

Kiedy uruchamiam strone i ma się wykonywać tylko case 'la' to case 'd' też się wykonuje i dopisuje do ciągu $dda zmienne $dds i $ddp, ale zmienna $ddi zwiększa się dokładnie o tyle ile razy wywołane zostanie case 'd'.

Dlaczego do zmiennej $dda nie dopiszą się dane tyle razy, ile razy zwiększyła się zmienna $ddi, tylko tyle razy ile razy wykona się cała pętla?

Mam nadzieje że zrozumiale to napisałem.

Pozdrawiam


-------------------------
używamy poprawnego BBCode
Teraz poprawiłem, ale proszę pamiętać na przyszłość
~Cienki1980
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
centrum2954
post 4.03.2007, 11:41:19
Post #2





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 8.04.2006

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


hmm, nie wiem czy to pomoże ale wygląda to mniej więcej tak:

  1. <?php
  2.  
  3.  
  4. switch($ssa){
  5.  
  6. case 'la':
  7.  
  8. LA LA LA LA
  9.  
  10. break;
  11.  
  12. case 'd':
  13. if ($ddk==$ddi) {
  14. $dda.=" + " . $dds . " + " . $ddp . ":";
  15. $dde = explode(":", $dda);
  16. print ($dde[$ddi]);
  17. $ddi++;
  18. }
  19. break;
  20.  
  21.  
  22. }
  23.  
  24. ?>




i teraz jeśli zmienna $ssa przyjmie wartość: d, to wszystko jest ok, czyli: do zmiennej $dda dopisane zostaną zmienne $dds i ddp i zmienna $ddi zwiększy się o 1.

Natomiast jak $ssa przyjmie wartość: la
to do zmiennej $dda też zostanią dodane zmienne $dds i $ddp (a nie powinny) i $ddi nie zwiększy sie o 1 (czyli tu wszysyko jest ok)

EDIT: aha dodam jeszcze że jak zmienna $ssa ma wartość la to nie wyświetka zmiennej $ dde ( print ($dde[$ddi]); ) czyli weszytko jest git, tylko dlaczego on dopisuje coś do zmiennej $dda jak zmienna $ssa=la?

Ten post edytował centrum2954 4.03.2007, 11:44:34
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 19:13