Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]mam problem z petla while w PHP
dolar
post
Post #1





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 19.10.2016

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


<?

while (!empty(czytajLinie())) {
if (czytajLinie()=="tak") {
echo "przyznano dostep";
} elseif (czytajLinie()=="nie") {
echo "nie przyznano dostepu";
} elseif (czytajLinie()!="tak" || czytajLinie()!="nie") {
echo "nie znam komendy\n";
}
}

echo "wpisz raz jeszcze polecenie\n";


?>


Witam, jestem nowa i poczakujaca... a w zasadzie to jeszcze raczkujaca (IMG:style_emoticons/default/tongue.gif) . Zatrzymalam sie na dluzej w petlach gdyz jakos tak ciezko mi przyszlo ich zrozumienie, ackzolwiek wszystko idzie do przodu juz (IMG:style_emoticons/default/smile.gif) .
Wyyslilam sobie zadanie, ze petla ma dzialac w momencie gdy pole z funkcji (czytajlinie - to moja wlasna funkacja, gdzie sie wpisuje cos) nie bedzie pusta, inaczej ma ja zakonczyc. I tak: jesli uzytkownik wpisze "tak to ma sie cos wyswietlic, jezeli "nie" to ma sie tez cos wuswietlic, a jezeli nic z powyzszych to tez ma cos sie wyswiertlac... cos mi nie dziala bo jak wpisuje tak to petla wskakuje jakby na poczatek i znowu mam pole do wpisywania zamiast echo dopasowane do slowa "tak"... co jest nie tak?

Ten post edytował dolar 19.10.2016, 09:20:05
Go to the top of the page
+Quote Post
kapslokk
post
Post #2





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

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


Pokaż kod tej funkcji czytajLinie - może łatwiej będzie zrozumieć o co Ci tak właściwie chodzi.
Go to the top of the page
+Quote Post
dolar
post
Post #3





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 19.10.2016

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



function czytajLinie() {
echo "Wpisz: ";
$handle = fopen ("php://stdin","r");
$line = fgets($handle);
return trim($line);
}


Przepraszam jesli pisze malo czytelnie, ale na prawde jestem dopiero na etapie podstaw (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
kapslokk
post
Post #4





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

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


Zmień warunek pętli na
  1. while (!empty($linia = czytajLinie())) {
i później w środku odwołuj się do $linia a nie czytajLinie(). W takiej formie jak masz teraz w każdym miejscu gdzie wywołujesz czytajLinie() musisz wpisywac tekst od nowa.

Ten post edytował kapslokk 19.10.2016, 09:23:06
Go to the top of the page
+Quote Post
dolar
post
Post #5





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 19.10.2016

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


Dziala!!!

A czy pspba powyzej bylaby tak mila i wytlumaczyla mi jak laikowi dlaczego dziala jak przypisze zmiennej moja funkcje, a jak nie to nie dziala? Bo w chwili obecnej jestem na etapie przestawianie sie na myslenie programistyczne i czasem nie widze rzeczy, ktore powinnam :/. Widze ze po przypisaniu funkcji do zmiennej jest ona wywolywana tylko raz w warunku petli, a wczesniej mialam ja wywolywana kilka razy tak? Dlatego nie dzialalo?

Ten post edytował dolar 19.10.2016, 09:29:59
Go to the top of the page
+Quote Post
kapslokk
post
Post #6





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

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


Funkcja czytajLinie() przy KAŻDYM wywołaniu pobiera tekst z wejścia - czyli za pierwszym razem gdy sprawdzasz czy polecenie nie jest puste i poźniej gdy porownujesz do konkretnych stringow. Potrzebujesz pobrać polecenie jeden raz i później na nim już operować. Teoretycznie Twój kod też działał, tylko trzeba było wpisać np 2x tak. (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
dolar
post
Post #7





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 19.10.2016

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


Baardzo dziekuje za pomoc. Wiem, ze moje pierwsze kroki i zadania i problemy moga wydac sie czasem blahe, ale jestem mega zadowolona z udzielonej mi pomocy iw razie problemow bede tutaj stalym uzytkownikiem (IMG:style_emoticons/default/smile.gif)
Pozdrawiam!
Go to the top of the page
+Quote Post
Tomplus
post
Post #8





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


Daj POMÓGŁ tym którzy ci pomogli w rozwiązaniu problemu.
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: 22.08.2025 - 20:54