Skocz do zawartości



Kurs dla początkujących

php kurs początkujący

  • Nie możesz odpowiedzieć
17 odpowiedzi w tym temacie

#1 V3RON

    Nowy

  • Użytkownik
  • Pip
  • 6 postów

Napisano 29/11/2011 - 21:18

Witaj!

Skoro przeglądasz ten temat to znaczy, że chcesz nauczyć się używać PHP do tworzenia stron, a nawet aplikacji internetowych.
Poniżej znajdziesz spis treści, które porusza ten kurs.
  • Wprowadzenie

+ Co to jest PHP?

+ Umieszczanie skryptów PHP na stronie

+ Błędy i debugowanie


2. Składnia języka


+ Komentarze

+ Zmienne i ich typy

+ Predefiniowane zmienne


3. Operatory


+ Operatory arytmetyczne

+ Operator przypisania

+ Operatory porównania

+ Operatory inkrementacji i dekrementacji

+ Operator ciągu

+ Operatory logiczne


4. Instrukcje warunkowe oraz pętle.

+ Instrukcja warunkowa if
+ Pętla FOR
+ Pętla while
+ Pętla do...while
+ Przerywanie pętli
+ Instrukcja warunkowa switch


1. Wprowadzenie


1. Co to jest PHP?


Cytat

PHPobiektowy, skryptowy język programowania zaprojektowany do generowania stron internetowych w czasie rzeczywistym.
Źródło: Wikipedia.pl

W praktyce PHP używamy, aby rozszerzać możliwości stron internetowych. Jego składnia podobna jest do języków programowania C oraz C++, lecz o wiele uproszczona. Programista PHP zazwyczaj nie musi martwić się o poprawność typów zmiennych czy przydzielanie im pamięci.

2. Umieszczanie skryptów PHP na stronie

Aby plik był rozpoznawany przez serwer jako skrypt PHP musi posiadać odpowiednie rozszerzenie. Aktualnie używamy rozszerzenia .php, jednak w starszych wersjach stosowano rozszerzenia tj. .php3 .phtml czy .php4. Dzięki takiemu rozszerzeniu serwer wie, że musi "przepuścić" plik przez parser PHP.

Kod PHP umieszczamy pomiędzy znacznikami:
<? echo("Hello World!"); ?>
<?php echo("Hello World!"); ?>
<script language="php"> echo("Hello World!"); </script>

Każda z powyższych metod jest prawidłowa. Możesz używać której chcesz. :)
Po spojrzeniu na powyższy kod jesteś gotowy do napisania podstawowego skryptu każdego programisty - wyświetlającego napis Hello World!

3. Błedy i debugowanie

W przeciwieństwie do innych języków PHP wykonuje kod aż do napotkania błędu. Jeśli w konfiguracji serwera jest aktywna opcja odpowiedzialna za wyświetlanie błędów po otworzeniu strony powinniśmy ujrzeć czarny napis zawierający informacje na temat błędu. Niektóre edytory PHP zawierają debugger, który od razu sprawdza, czy nasz kod jest poprawny. Znacznie przyśpiesza to pracę programisty, gdyż od razu wiemy, czy popełniliśmy błąd. Istnieje również inna metoda debugowania skryptów. Otóż w kluczowych częściach kodu wstawiamy funkcję echo, która odpowiedzialna jest za wyświetlenie podanego przez nas tekstu na stronie internetowej. Przykładowe użycie tej funkcji możecie ujrzeć w przykładzie Hello World!

Jeśli chcemy sprawdzić wersje naszego PHP czy aktywne biblioteki możemy skorzystać z funkcji phpinfo();, która generuje stronę informacyjną. Możemy z niej odczytać m.in. katalog, w którym znajduje się plik konfiguracyjny php.ini.

2. Składnia języka

1. Komentarze

Komentarze są ważne w każdym języku programowania. Pomagają nam zrozumieć napisany przez nas kod. Są ignorowane przez parser, a więc to co tam napiszemy nie wpływa na pracę naszego skryptu, o ile zrobimy to dobrze.

Komentarze wstawiamy używając jednej z następujących metod:
// Nasza treść komentarza - tylko jedna linia
/* Nasza treść komentarza - do znaku końcowego */

2. Zmienne i ich typy

Zmienna to identyfikator znakowy, któremu przypisano jakąś wartość. Na tym poziomie tyle powinieneś wiedzieć.
W PHP nie musimy martwić się o manualną inicjalizacje zmiennej czy narzucanie jej typu (czym charakteryzują się np. język C i jego pochodne). Zmienną tworzymy za pomocą znaku dolara $. Jej nazwa musi zaczynać się od litery lub od znaku underscore (zwanego czasami twardą spacją - _).
PHP rozpoznaje małe i duże litery w nazwach zmiennych, jak i innych elementów. Dlatego $Nazwa nie odnosi się do $nazwa. Poniżej znajduje się przykład użycia zmiennych:

<?php
$integer = 1; // Zmiennej o nazwie 'integer' przypisywana jest wartość 1
$string = "Przykładowy tekst"; // Zmiennej 'string' przypisywany jest tekst
echo($integer); // Po wykonaniu tego kodu ujrzymy 1
echo($string); // Po wykonaniu tego kodu ujrzymy - Przykładowy tekst
?>

Typy zmiennych:
  • integer (liczba całkowita)
  • string (ciąg znaków)
  • double (liczba rzeczywista)
  • object (obiekt)
  • array (tablica)
W większości przypadków nie potrzebujemy zmieniać przypisanego typu dla zmiennej. Jednak zdarzają się przypadki, gdy musimy to zrobić. Możemy tego dokonać używając rzutowania (efekt jednorazowy) lub funkcji settype (efekt stały).

Rzutowanie typów odbywa się poprzez podanie nowego typu w nawiasie przed zmienną lub wartością, której typ chcemy zmienić.

<?php
$integer = 10; // Przypisujemy zmiennej 'integer' wartość 10;
$integer = (int) 1.5634 // Wartość 1.5634 zostanie zamieniona na 2
?>

Typy rzutowań:
  • (int) lub (integer) - rzutuj do typu całkowitego
  • (float), (double), (real) - rzutuj do typu rzeczywistego
  • (string) - rzutuj do ciągu znaków
  • (array) - rzutuj do tablicy
  • (object) - rzutuj do obiektu
Funkcja settype potrzebuje 2 argumentów. Pierwszy argument to nazwa zmiennej, której chcemy zmienić typ. Drugi to ciąg znaków oznaczający dany typ.

Dozwolone ciągi znakowe oznaczające dany typ:
  • integer
  • double
  • string
  • array
  • object
Większość funkcji w PHP zwraca wartości. Zazwyczaj są to wartości true lub false.
Funkcja settype zwróci wartość true, jeśli typ zmiennej zostanie zmieniony. Wartość false zostanie zwrócona w przypadku wystąpienia problemu w czasie operacji.

3. Predefiniowane zmienne

Każdy skrypt ma dostęp do zmiennych, których wartość ustalana jest na podstawie zmiennych środowiskowych serwera WWW. Używamy ich jak normalnych zmiennych - poprzedzamy ich nazwy znakiem dolara $.

Cytat

Zmienne ustawiane przez serwer WWW:
  • GATEWAY_INTERFACE - Informacja o specyfikacji CGI używanej przez serwer, np. 'CGI/1.1'.
  • SERVER_NAME - Nazwa hosta serwera na którym skrypt jest uruchamiany. Jeśli skrypt pracuje na wirtualnym hoście, to zmienna przyjmie jako wartość nazwę wirtualnego hosta.
  • SERVER_SOFTWARE - Ciąg identyfikujący serwera podawany przy odpowiadaniu na zapytania
  • SERVER_PROTOCOL - Nazwa i numer wersji protokołu za pomocą którego wysłano zapytanie o stronę, np. 'HTTP/1.0';
  • REQUEST_METHOD - Metoda zapytania użyta do uzyskania dostępu do strony, np. 'GET', 'HEAD', 'POST', 'PUT'.
  • QUERY_STRING - Ciąg zapytania (jeśli takowy istnieje) za pomocą którego połączono się ze stroną.
  • DOCUMENT_ROOT - Katalog główny drzewa dokumentów spod którego skrypt jest wykonywany - jest to ustawienie z pliku konfiguracyjnego serwera.
  • HTTP_ACCEPT - Nagłówek z aktualnego zapytania, jeśli taki istnieje.
  • HTTP_ACCEPT_CHARSET - Zawartość nagłówka "Accept-Charset" z aktualnego zapytania, jeśli taki istnieje, np. 'iso-8859-1,*,utf-8'.
  • HTTP_ENCODING - Zawartość nagłówka "Accept-Encoding" z aktualnego zapytania, jeśli taki istnieje, np. 'gzip'.
  • HTTP_ACCEPT_LANGUAGE - Zawartość nagłówka "Accept-Language" z aktualnego zapytania, jeśli taki istnieje, np. 'en'.
  • HTTP_CONNECTION - Zawartość nagłówka "Connection" z aktualnego zapytania, jeśli taki istnieje, np. 'Keep-Alive'.
  • HTTP_HOST - Zawartość nagłówka "Host" z aktualnego zapytania, jeśli taki istnieje.
  • HTTP_REFERER - Adres strony (jeśli taka była), która wskazała przeglądarkę do tej strony. Wartość ta jest ustawiana przez przeglądarkę - nie wszystkie to robią.
  • HTTP_USER_AGENT - Zawartość nagłówka "User-Agent" z zapytania, jeśli taki istnieje. Jest to ciąg informujący o przeglądarce która została użyta do obejrzenia bieżącej strony, np. Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Można użyć funkcji get_browser() aby dopasować funkcjonalność strony do przeglądarki użytkownika.
  • REMOTE_ADDR - Adres IP z którego użytkownik ogląda bieżącą stronę.
  • REMOTE_PORT - Port używany do komunikacji pomiędzy użytkownikiem a serwerem.
  • SCRIPT_FILENAME - Ścieżka do aktualnie wykonywanego skryptu.
  • SERVER_ADMIN - Wartość podana dla opcji SERVER_ADMIN w konfiguracji serwera WWW. Jeśli skrypt działa na wirtualnym serwerze, to będzie to wartość podana dla tego wirtualnego serwera.
  • SERVER_PORT - Port na serwerze którego użyto do połączenia. Dla normalnych połączeń będzie to '80'.
  • SERVER_SIGNATURE - Ciąg zawierający wersję i nazwę wirtualnego hosta który jest dodawany do stron generowanych przez serwer.
  • SCRIPT_NAME - Zawiera ścieżkę do aktualnie wykonywanego pliku. Jest to przydatne do skyptów, które muszą wskazywać samego siebie.
  • REQUEST_URI - URI który został podany aby uzyskać dostęp do tej strony.
Zmienne ustawiane przez PHP:
  • argv - Tablica argumentów przkazywanych do skryptu. Jeśli skrypt jest uruchamiany z linii poleceń, to zmienna ta daję dostęp do argumentów w stylu języka C. Jeśli jest wywołany przez metodę GET, to zmienna ta zawierać będzie ciąg parametrów (query string).
  • argc - Zawiera liczbę parametrów podanych podanych do skryptu w linii poleceń (jeśli skrypt został wywołany z linii poleceń).
  • PHP_SELF - Nazwa pliku aktualnie wykonywanego skryptu, względna do katalogu głównego dokumentów. Ta zmienna jest niedostępna jeśli PHP jest uruchamiany z linii poleceń.
  • HTTP_COOKIE_VARS - Tablica asocjacjna zmiennych przekazanych do skryptu przez HTTP cookies. Dostępna tylko jeśli włączone zostało śledzenie zmiennych przez ustawienie w konfiguracji PHP opcji track_vars lub komendą <?php_track_vars?>.
  • HTTP_GET_VARS - Tablica asocjacjna zmiennych przekazanych do skryptu przez metodę GET. Dostępna tylko jeśli włączone zostało śledzenie zmiennych przez ustawienie w konfiguracji PHP opcji track_vars lub komendą <?php_track_vars?>.
  • HTTP_POST_VARS - Tablica asocjacjna zmiennych przekazanych do skryptu przez metodę POST. Dostępna tylko jeśli włączone zostało śledzenie zmiennych przez ustawienie w konfiguracji PHP opcji track_vars lub komendą <?php_track_vars?>.
Autor powyższego spisu: Leszek 'leon' Krupiński

3. Operatory

1. Operatory arytmetyczne

Operatory arytmetyczne każdy powinien znać z podstawówki.
  • + Dodawanie
  • - Odejmowanie
  • / Dzielenie (bez reszty)
  • * Mnożenie
  • % Modulo (reszta z dzielenia)
2. Operator przypisania

Operatorem przypisania jest symbol '='. W PHP, jak i wielu innych językach ten symbol nie oznacza 'jest równe'. Nadaje on zmiennym wartość.

<?php
$first = 5; // Nadanie zmiennej 'first' wartości 5
$second = $first; // Nadanie zmiennej 'second' wartości zmiennej 'first'
?>


Jak powyższy przykład pokazuje możemy również nadawać zmiennym wartości innych zmiennych. Operator przypisania możemy łączyć z innymi.

<?php
$first += 5; // Do zmiennej 'first' zostanie dodana wartość '5' (NIE NADANA)
$first -= 5 // Od wartości zmiennej 'first' zostanie odjęte 5
$first *= 5 // Wartość zostanie pomnożona przez 5
$first /= 5 // Wartość zostanie podzielona przez 5
$first %= 5 // Wartość będzie resztą dzielenia przez 5
$first .= 'Jakiś ciąg' // Do zmiennej 'first' zostanie dodany ciąg 'Jakiś ciąg' (o tym operatorze dowiesz się później)
?>


3. Operatory porównania

Operatory porównania niezbędne są do używania instrukcji warunkowych. Zwracają one wartość true lub false.
  • == (równy)
  • != (nierówne)
  • < (mniejsze)
  • > (większe)
  • <= (mniejsze bądź równe)
  • => (większe bądź równe)
Wartość false zostanie zwrócona, gdy postawione przez nas "zdanie" nie jest prawdą.
Działanie instrukcji warunkowych zostanie przedstawione Ci w następnym dziale.

4. Operatory inkrementacji i dekrementacji

Operatory inkrementacji i dekrementacji służą do zwiększania lub zmniejszania wartości danej zmiennej o 1.
Obydwa operatory można stosować na 2 sposoby: preinkrementacja/predekrementacja - najpierw wartość zmiennej zostanie zmieniona, a następnie zwrócona, lub postinkrementacji/postdekrementacji - najpierw zostanie zwrócona wartość, a następnie zmieniona.
  • ++$q (preinkrementacja)
  • $q++ (postinkrementacja)
  • --$q (predekrementacja)
  • $q-- (postdekrementacja)
5. Operator ciągu

Operator ciągu (znak '.') służy do łączenia kilku ciągów znakowych w całość.

<?php
$first = 'To jest ';
$second = 'test';
$third = $first.$second; // Wynik to - To jest test
?>


6. Operatory logiczne

Operatory logiczne służą do budowania bardziej skomplikowanych instrukcji warunkowych.
  • $b && $c (AND - zwraca true, jeśli $b oraz $c są prawdą)
  • $b || $c (OR - zwraca true, jeśli albo $b albo $c jest prawdą)
  • !$a (NOT - zwraca true, jeśli $a nie jest prawdą)
4. Instrukcje warunkowe oraz pętle

1. Instrukcja warunkowa if

Instrukcje warunkową można spotkać w każdym języku programowania. Używamy jej do wykonania pewnych funkcji, ale tylko, gdy postawiony przez nas warunek zostanie spełniony.

<?php
if(warunek)
	   instrukcja wykonywana, gdy warunek zostanie spełniony
else if(inny_warunek)
	   instrukcja wykonywana, gdy inny_warunek zostanie spełniony
else
	   instrukcja wykonywana, gdy żaden z warunków nie został spełniony
?>

Warunkiem może być dowolne wyrażenie, które zwraca jakąś wartość, np. zmienna czy funkcja.

<?php
$a = 1;
$b = 2
$c = 1;
if($a == $B) // Jeśli $a jest równe $b - w tym przypadku jest to fałsz
   echo("Ten kod nie wykona się");
else if($b < $c) // Jeśli $b jest mniejsze od $c - w tym przypadku jest to fałsz
   echo("Ten kod nie wykona się");
else // Jeśli wszystkie powyższe warunki nie zostały spełnione
   echo("Ten kod wykona się");
?>

Jeśli chcemy, aby po spełnieniu warunku wykonane zostało nie jedno, lecz kilka poleceń, to te polecenia musimy ująć w nawiasy klamrowe.

<?php
$a = 1;
$b = 2;
$c = 3;
if($a < $B) // Prawda
{
   echo("Ten kod wykona się");
   echo ("Ten też");
}
else
{
   echo("Ten kod nie wykona się");
   echo("Ten też nie");
}
?>

Instrukcje warunkowe oczywiście możemy umieszczać w innej instrukcji warunkowej.
Warunki instrukcji warunkowej możemy łączyć dzięki poznanym w poprzednim dziale operatorom (OR, AND).
Operator OR ma wyższy priorytet niż operator AND, dlatego w pewnym przypadkach musimy grupować warunki używając nawiasów.

<?php
if( ($a > $b || $b < $c) && $c == $e)
?>

2. Pętla FOR

Czasem musimy wykonać jakiś kod określoną liczbę razy. Właśnie po to powstały pętle. Z pomocą przychodzi najczęściej stosowana pętla FOR.

<?php
for(inicjalizacja zmiennych ; warunek ; modyfikacja zmiennych)
{
   instrukcje
}[
?>


Pętla FOR przyjmuje 3 argumenty: inicjalizacja zmiennych (ustalenie początkowych wartości dla zmiennych kontrolujących pętle), warunek (pętla będzie się wykonywać dopóki ten warunek nie zostanie spełniony), modyfikacja zmiennych (bez tego pętla wykonywała by się w nieskończoność).

<?php
for($a = 1; $a <= 10; a++)
{
	echo $a."<br/>";
}
?>

Powyżej znajduje się przykład pętli, która wypisze cyfry od 1 do 10;

3. Pętla while

Inna odmiana pętli o nazwie while. Jest wykonywana do czasu, aż podany warunek nie zostanie spełniony.

<?php
$a = 1;
while($a <= 10){
   echo $a."<br/>";
   $a++;
}
?>

Powyższy kod to odpowiednik pętli FOR.


[KURS będzie uzupełniany codziennie o nowe treści]

#2 Krzysztof Baraniak

    Zakorzeniony

  • Administrator
  • PipPipPipPipPip
  • 174 postów
  • Miasto:Leszno

Napisano 29/11/2011 - 21:20

Masz ode mnie plusa za pierwszy ładny poradnik na tym forum. A jak będziesz go codziennie aktualizował to jeszcze lepiej. :)

Dołączona grafika


#3 Ryba123pl

    Aktywny

  • Użytkownik
  • PipPipPip
  • 40 postów

Napisano 30/11/2011 - 11:30

Poradnik przydatny. Dzięki. :)

#4 V3RON

    Nowy

  • Użytkownik
  • Pip
  • 6 postów

Napisano 01/12/2011 - 16:10

Na dzień dzisiejszy kurs zawiera trzy rozdziały. Staram się, aby z każdym dniem przybywał kolejny. :)

#5 Krzysztof Baraniak

    Zakorzeniony

  • Administrator
  • PipPipPipPipPip
  • 174 postów
  • Miasto:Leszno

Napisano 01/12/2011 - 16:23

No i bardzo dobrze robisz, co rozdział to lepiej opisany. :)

Dołączona grafika


#6 Evil17

    Zaangażowany

  • Użytkownik
  • PipPipPipPip
  • 57 postów

Napisano 01/12/2011 - 16:50

Poradnik bardzo fajny, przemyślany, startujesz z prostymi rzeczami i mam nadzieje że zakończysz go z naprawdę całą masą informacji na temat php.

#7 Marek N.

    Początkujący

  • Użytkownik
  • PipPip
  • 22 postów

Napisano 03/12/2011 - 00:45

Zabieram się do roboty, no i czekam na aktualizacje. :)

#8 Borek

    Początkujący

  • Użytkownik
  • PipPip
  • 14 postów
  • Miasto:Siedlce

Napisano 03/12/2011 - 00:50

Bardzo przydatny poradniczek. ;] Plusik oczywiście leci, aby więcej takich poradników dla uczących się tworzyć własne strony.

#9 Krzysztof Baraniak

    Zakorzeniony

  • Administrator
  • PipPipPipPipPip
  • 174 postów
  • Miasto:Leszno

Napisano 03/12/2011 - 00:51

Jakiś zastój w kontynuacji poradnika? Niektórzy z pewnością na Ciebie liczą. :)

Dołączona grafika


#10 V3RON

    Nowy

  • Użytkownik
  • Pip
  • 6 postów

Napisano 03/12/2011 - 10:52

Skyrim "trochę" czasu mi wczoraj zabrał, ale dzisiaj postaram się napisać kolejne dwa rozdziały.

@EDIT: Chwilowy postój w kursie. :P

#11 Krzysztof Baraniak

    Zakorzeniony

  • Administrator
  • PipPipPipPipPip
  • 174 postów
  • Miasto:Leszno

Napisano 08/12/2011 - 19:02

Jakby nie patrzeć, czekamy na dalsze części. :P

Dołączona grafika


#12 Kamil.K

    Zakorzeniony

  • Użytkownik
  • PipPipPipPipPip
  • 109 postów
  • Miasto:Gdańsk

Napisano 17/12/2011 - 11:02

Przydało by się dodać rozdział o czasie i datach.

#13 Kamil Oniszczuk

    Aktywny

  • Użytkownik
  • PipPipPip
  • 38 postów

Napisano 07/01/2012 - 17:22

Cytat

Przydało by się dodać rozdział o czasie i datach.
<?php 
                        echo ('Czas: '. date('H:i'). 'Data: '. date('Y.m.d'));
                    ?>  


#14 Kamil.K

    Zakorzeniony

  • Użytkownik
  • PipPipPipPipPip
  • 109 postów
  • Miasto:Gdańsk

Napisano 07/01/2012 - 17:42

Tak, ale opisać, to ponieważ nie którzy mogą nie znać, zresztą zrobiłem to w swoim poradniku.

#15 CRX

    Aktywny

  • Użytkownik
  • PipPipPip
  • 31 postów

Napisano 14/01/2012 - 15:26

Wielkie dzięki za ten poradnik. Mam tylko jedno pytanie, czy jak mam zamiar coś zadeklarować to muszę używać $?

#16 Kamil.K

    Zakorzeniony

  • Użytkownik
  • PipPipPipPipPip
  • 109 postów
  • Miasto:Gdańsk

Napisano 14/01/2012 - 15:40

CRX, używamy $ tylko przy deklaracji zmiennych np : $liczba =1;, tak samo je wyświetlasz echo $liczba;. Przy define nie używamy $.

Pozdrawiam ;)

#17 Marcin Majewski

    Zaangażowany

  • Użytkownik
  • PipPipPipPip
  • 59 postów

Napisano 15/01/2012 - 21:37

Mógłbyś jeszcze dodać:
&

i ogólnie obsługę wyjątków.
try


#18 Krzysztof Baraniak

    Zakorzeniony

  • Administrator
  • PipPipPipPipPip
  • 174 postów
  • Miasto:Leszno

Napisano 25/02/2012 - 16:13

Szkoda że porzuciłeś już rozwijanie poradnika. No nic, to co napisałeś i tak jest bardzo wartościowe. :)

Dołączona grafika






Użytkownicy przeglądający ten temat: 1

0 użytkowników, 1 gości, 0 anonimowych