Ogłoszenie

Strefa czasowa: UTC + 1

Teraz jest 2025-07-16 19:28:40
Łączny czas online:



Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
 Tytuł: Kurs php - czesc 2
PostNapisane: 2007-11-18 13:04:38 
Offline
Forumowy bot administracyjny
Forumowy bot administracyjny
Avatar użytkownika

Dołączył(a): 2005-04-18 13:29:30
Posty: 1585
Lokalizacja: Olsztyn
Płeć: Mężczyzna
Pochwały: 18
w poprzedniej czesci kursu pokazalem jak stworzyc zmienna i przypisac do niej jakas wartosc. Zeby jednak operowac na tych zmiennych bedziemy potrzebowalikilku operatorow.

operatory matematyczne
Podstawowa grupa sa operatory matematyczne:
+ (suma)
- (roznica)
* (iloczyn)
/ (iloraz)
% (modulo czyli reszta z dzielenia)

Wykorzystujemy je tak samo jak w matematyce :) Przyklad:
$a + $b
$a - $b
$a * $c
itd.

Oczywiscie musimy pamietac zeby zapisac wynik dzialania do jakiejs zmiennej - inaczej mimo wykonania danego dzialania nie bedziemy znali jego wyniku.
Przyklad:
Kod:
<?
$a = 2;
$b = 4;
$c = 6;

$wynik = ($a+$b)*$c;
echo($wynik);
?>


Operatory przypisania
Kolejnymi bardzo waznymi operatorami sa operatory przypisania. Stosowane bardzo czesto, zwiekszaja czytelnosc kodu.
Lista operatorow
+=
-=
*=
/=
%=
.=

Wykorzystanie:
$a += $b; (rownoznaczne z $a = $a + $b;)
$a -= $b; (rownoznaczne z $a = $a - $b;)
$a *= $b; (rownoznaczne z $a = $a * $b;)
$a /= $b; (rownoznaczne z $a = $a / $b;)
$a %= $b; (rownoznaczne z $a = $a % $b;)
$a .= $b; (rownoznaczne z $a = $a.$b;)

W poprzedniej czesci kursu podalem taki przyklad:
Kod:
<?php
$imie = 'Jasio';
$nazwisko = 'Kowalski';
$a = 2+2;

echo($imie.'<br>'.$nazwisko.'<br>'.$a);
?>


Nie powiedzialem co robi operator "." (kropka). Sluzy ona do laczenia dwoch ciagow znakow. Np:

Kod:
<?php
$a = 'ala ';
$b = 'ma kota.';
$wynik = $a.$b;
echo('>'.$wynik.'<');
?>


Taki skrypt wyswietli nam na ekranie ciag:
Kod:
>ala ma kota<


Po raz kolejny zaznaczam - przy wyswietlaniu zmiennych nie ma '', ktore musza byc obecne przy zwyklym tekscie.

Operator laczenia dwoch ciagow znakow jest jednym z najczesciej wykorzystywanych operatorow.

Operatory inkrementacji i dekrementacji
Spokojnie, to tylko tak madrze sie nazywa :)
Inkrementacja - zwiekszenie, dekrementacja - zmniejszenie.

Kod:
<?php
$a=2;
echo($a.'<br>'); //wyswietli 2
$a++;
echo($a.'<br>'); //wyswietli 3
$a--;
echo($a.'<br>'); //wyswietli 2
?>


Tak jak widac:
-operator $zmienna++ zwieksza dana zmienna o 1
-operator $zmienna-- zmniejsza zmienna o 1

Operatory porownan
Jak sama nazwa mowi - sluza do porownywania pewnych rzeczy ze soba.
Lista operatorow oraz ich znaczenie:
== rowne
=== identyczne
!= nierowne
<> nierowne
< mniejsze
> wieksze
<= mniejsze lub rowne
>= wieksze lub rowne

Kilka przykladow:
2 == 2 (prawda)
2 === 2 (prawda)
2 != 2 (falsz)
2 <> 2 (falsz)
2 < 2 (falsz)
2 > 2 (falsz)
2 <= 2 (prawda)
2 >= 2 (prawda)

Operatory porownan wykorzystujemy w roznego typu petlach, porownaniach itp.

Instrukcje IF, WHILE oraz FOR
Chyba najczesciej wykorzystywane zaraz po echo(). Ich wykorzystanie jak i dzialanie jest bardzo proste, trzeba tylko miec troche wyobrazni i sprobowac zozumiec jak one dzialaja. Zaczniemy od instrukcji if:

Ogolna zasada tworzenia instrukcji if:
Kod:
if (wyrazenie) { instrukcje }


W instrukcji if mozemy opcjonalnie uzyc polecenia "else":
Kod:
if (wyrazenie) { instrukcje } else { inne instrukcje }


Zasada dzialania jest prosta jak budowa cepa :) Jezeli wyrazenie jest prawdziwe to wykonuje 'instrukcje', jezeli jednak wyrazenie jest falszywe to wykonuje 'inne instrukcje'.

przyklad
Kod:
<?php
$a=2;
$b=3;
if ($a == $b) {
  echo('$a = $b');
} else {
  echo('$a != $b');
}
?>


UWAGA! Bardzo czestym bledem popelnianym przez poczatkujacych jest pisanie instrukcji w ten sposob:
Kod:
<?php
$a=2;
$b=5;
if ($a = $b) {
  echo('$a = $b');
}
?>

W takim przypadku wyrazenie zawsze bedzie prawdziwe! Nie mylcie przypisania z porownaniem!

while
Kolejna instrukcja. Wykonuje dane operacje dopoki bedzie spelniony warunek.
Kod:
while (warunek) {
  instrukcje
}


Przyklad:
Kod:
<?php
$a = 0;
while ($a < 10) {
  echo($a);
  $a++
}
?>

Taka petla wyswietli nam na ekranie:
Kod:
0123456789


Istnieje jeszcze troche zmodyfikowana wersja instrukcji while a mianowicie do ... while:
Kod:
do {
  instrukcje
} while (warunek)

Czym sie rozni od instrukcji while? Tym ze warunek jest sprawdzany PO wykonaniu instrukcji, czyli instrukcje zostana wykonane co najmniej raz.
Kod:
<?php
$a = 0;
do {
  echo($a);
} while ($a>0)
?>


for
Ostatnia instukcja ktora przedstawie w tej czesci kursu jest instrukcja for.

Kod:
for (wyrazenie1; warunek; wyrazenie2) instrukcje

Co to oznacza i jak sie z tego korzysta? Ano bardzo prosto:
Kod:
for ($i=0; $i<10; $i++) {
  instrukcje
}

I teraz wytlumacze co zrobilismy i jak to dziala:
1. stworzylismy zmienna $i o wartosci 0
2. ustawilismy warunek ze instrukcje maja byc wykonywane dopoki $i bedzie mniejsze od 10
3. ustawilismy ze zmienna $i bedzie zwiekszana o 1 po kazdej wykonanej petli.

Przyklad:
Kod:
<?php
for($i=0; $i<20; $i+=2) {
  echo($i.'<br>');
}
?>


Specjalnie tutaj uzylem troche innych warunkow zebyscie lepiej zrozumieli jak to dziala. Taka petla wyswietli na ekranie:
Kod:
0
2
4
6
8
10
12
14
16
18

Uwaga! Uwazajcie jak konstruujecie warunki! Bardzo latwo jest wpasc w nieskonczona petle. W najlepszym wypadku pokaze sie komunikat o przekroczeniu maxymalnego czasu wykonywania skryptu

Przyklad zle skonstruowanego warunku:
Kod:
<?php
for($i=0; $i<20; $i+2) {
  echo($i.'<br>');
}
?>

*** Edit + poprawka
W tym przypadku warunek $i<20 nigdy nie zostanie spelniony. Dlaczego? Faktem jest ze zwiekaszmy $i o 2 ($i+2) ale nie zapisujemy tego. $i nadal ma wartosc 0.

To by bylo na tyle jezeli chodzi o druga czesc kursu. Chyba nie pominalem niczego bardzo waznego. W nastepnej czesci bedziemy pisac juz troche bardziej przydatne skrypty :) Zapraszam do dyskusji, zadawania pytan itp.


Ostatnio edytowano 2007-11-18 19:21:20 przez enejcz, łącznie edytowano 1 raz

Góra
 Zobacz profil  
 
 Tytuł:
PostNapisane: 2007-11-18 13:38:55 
Offline
Avatar użytkownika

Dołączył(a): 2005-06-10 15:14:44
Posty: 1103
Lokalizacja: localhost
Płeć: Mężczyzna
Pochwały: 13
Mogę się czepiać? :)

_________________
Cela est bien dit, rÊpondit Candide, mais il faut cultiver notre jardin Voltaire
La única diferencia entre un loco y yo es que yo no estoy loco. Salvador Dalí­
And the things you can't remember tell the things you can't forget Tom Waits


Góra
 Zobacz profil  
 
 Tytuł:
PostNapisane: 2007-11-18 13:52:36 
Offline
Forumowy bot administracyjny
Forumowy bot administracyjny
Avatar użytkownika

Dołączył(a): 2005-04-18 13:29:30
Posty: 1585
Lokalizacja: Olsztyn
Płeć: Mężczyzna
Pochwały: 18
Jasne :)


Góra
 Zobacz profil  
 
 Tytuł:
PostNapisane: 2007-11-18 16:27:14 
Offline
Avatar użytkownika

Dołączył(a): 2005-06-10 15:14:44
Posty: 1103
Lokalizacja: localhost
Płeć: Mężczyzna
Pochwały: 13
Nh2003 napisał(a):
Warunek ($i+2) jest zawsze spelniony! A dlaczego? Poniewaz wynikiem tego warunku jest to czy udalo sie zwiekszyc $i o 2.

Czytałem te zdanie kilka razy. I gdybym nie wiedział jak działa for, to bym nic nie zrozumiał. Przeczytaj to sobie *spokojnie*.

I jeszcze quiz: Co wyświetli kod z kursu o pęrli do..while?

_________________
Cela est bien dit, rÊpondit Candide, mais il faut cultiver notre jardin Voltaire
La única diferencia entre un loco y yo es que yo no estoy loco. Salvador Dalí­
And the things you can't remember tell the things you can't forget Tom Waits


Góra
 Zobacz profil  
 
 Tytuł:
PostNapisane: 2007-11-18 18:26:04 
Offline
Forumowy bot administracyjny
Forumowy bot administracyjny
Avatar użytkownika

Dołączył(a): 2005-04-18 13:29:30
Posty: 1585
Lokalizacja: Olsztyn
Płeć: Mężczyzna
Pochwały: 18
Zubaran_PL napisał(a):
Czytałem te zdanie kilka razy. I gdybym nie wiedział jak działa for, to bym nic nie zrozumiał. Przeczytaj to sobie *spokojnie*.

czytam i czytam i nie wiem a co Ci chodzi...

Cytuj:
I jeszcze quiz: Co wyświetli kod z kursu o pęrli do..while?

Na pewno nie bedzie to blad :D


Góra
 Zobacz profil  
 
 Tytuł:
PostNapisane: 2007-11-18 19:12:30 
Offline
Avatar użytkownika

Dołączył(a): 2005-06-10 15:14:44
Posty: 1103
Lokalizacja: localhost
Płeć: Mężczyzna
Pochwały: 13
Nh2003 napisał(a):
czytam i czytam i nie wiem a co Ci chodzi...
Nh2003 napisał(a):
Warunek ($i+2) jest zawsze spelniony! A dlaczego? Poniewaz wynikiem tego warunku jest to czy udalo sie zwiekszyc $i o 2. W takim przypadku petla bedzie wykonywac sie w nieskonczonosc.

Tak więc zacznę od tego, że w tym przypadku ($i+2) to nie jest warunek, a tylko zwykła instrukcja iteracyjna. Warunkiem jest ($i<20). Po drugie nawet jeżeli ($i+2) byłoby warunkiem (co jest oczywiście możliwe), to jego wynikiem (zawsze logicznym) nie jest "skuteczność" zwiększenia zmiennej o 2, tylko wynik arytmetyczny jaki ona daje poddany operacji konwersji na typ logiczny (czyli dla 0 będzie: false, dla każdej innej: true).

_________________
Cela est bien dit, rÊpondit Candide, mais il faut cultiver notre jardin Voltaire
La única diferencia entre un loco y yo es que yo no estoy loco. Salvador Dalí­
And the things you can't remember tell the things you can't forget Tom Waits


Góra
 Zobacz profil  
 
 Tytuł:
PostNapisane: 2007-11-18 19:17:26 
Offline
Forumowy bot administracyjny
Forumowy bot administracyjny
Avatar użytkownika

Dołączył(a): 2005-04-18 13:29:30
Posty: 1585
Lokalizacja: Olsztyn
Płeć: Mężczyzna
Pochwały: 18
Tak to jest jak juz czlowiek nie mysli =.= Lece poprawic caly zapis.


Góra
 Zobacz profil  
 
 Tytuł:
PostNapisane: 2007-11-18 19:25:55 
Offline
Avatar użytkownika

Dołączył(a): 2005-06-10 15:14:44
Posty: 1103
Lokalizacja: localhost
Płeć: Mężczyzna
Pochwały: 13
To ja zadam pytanie które kiedyś sam otrzymałem:
1) Skęd mam wiedzieć kiedy mam użyć 'if' a kiedy 'for'?
2) Dlaczego sę 3 rodzaje pętli, skęd mam wiedzieć którę kiedy stosować?

_________________
Cela est bien dit, rÊpondit Candide, mais il faut cultiver notre jardin Voltaire
La única diferencia entre un loco y yo es que yo no estoy loco. Salvador Dalí­
And the things you can't remember tell the things you can't forget Tom Waits


Góra
 Zobacz profil  
 
 Tytuł:
PostNapisane: 2007-11-18 20:26:06 
Offline
Forumowy bot administracyjny
Forumowy bot administracyjny
Avatar użytkownika

Dołączył(a): 2005-04-18 13:29:30
Posty: 1585
Lokalizacja: Olsztyn
Płeć: Mężczyzna
Pochwały: 18
Zaczne od konca:
Zubaran_PL napisał(a):
Dlaczego sę 3 rodzaje pętli, skęd mam wiedzieć którę kiedy stosować?

Kazda petla dziala inaczej:
for - jest bardzo dobra gdy musimy wykonac ta sama, stala liczbe razy. Np. musimy zpingowac 14 serwerow. Wtedy prosta petla for i juz mamy efekt.

Petla while jest idealna w momencie gdy musimy cos zrobic ilestam razy ale nie wiemy ile razy to bedzie. Przykladem moze byc wyswietlanie wierszy w tablicy. Moze sie zdarzyc ze tablica bedzie pusta ale moze byc tez ze wierszy bedzie 500.

Natomiast instukcja do...while sprawdza sie tez tam gdzie while ale przy zalozeniu ze cos musi zostac zrobione chociaz raz.

Taka jest moja interpretacja tych 3 petli :)

Zubaran_PL napisał(a):
Skęd mam wiedzieć kiedy mam użyć 'if' a kiedy 'for'?

if sluzy do sprawdzania warunkow - konkretnych. Np. czy user jest zalogowany, czy wylogowany itp itd. Petla for natomiast sluzy do wykonywania kilku-kilkunastu albo nawet kilkuset takich samych instrukcji pod rzad.


Góra
 Zobacz profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Style created by © Matti, gry komputerowe, reklama sem reklama seo

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group Change colors.
Przyjazne użytkownikom polskie wsparcie phpBB3 - phpBB3.PL
[ Time : 0.020s | 14 Queries | GZIP : Off ]


Sponsorem naszego serwera FTP jest e-utp.net