Professional Documents
Culture Documents
Dostpny dziki firmie Netteria.NET tworzenie stron www, projektowanie stron internetowych, tworzenie
oprogramowania na zamwienie.
Zezwala si na dowolne rozpowszechnianie w sieci internet pod warunkiem umieszczenia odnonika do serwisu https://netteria.net
Wstp
Program PHP mona pozna po tym, e ich rozszerzenie jest najczciej *.php lub *.php3.
Istnieje wprawdzie moliwo takiego skonfigurowania serwera na ktrym dziaaj
programy PHP, e rozszerzenie moe by dowolnie okrelone, np. *.html, jednak chyba
doskonaa wikszo ma wanie te dwa rozszerzenia. Dodam e *.php3 jest
rozszerzeniem dla starszej wersji jzyka.
Czym waciwie jest program napisany w PHP? Program PHP jest programem
dziaajcym po stronie serwera. Tam te si wykonuje a wyniki w postaci gotowego kodu
HTML s przesyane do klienta, czyli do przegldarki ktra daa dostpu do strony. To
kolejna zaleta PHP. Po pierwsze, e wynik Twojej pracy w postaci kody rdowego nie
jest oglnie dostpny (przecie nie zawsze chcesz pokaza innym swj kod) a po drugie
nie obciasz klienta a co za tym idzie nie musisz bra pod uwag parametrw
technicznych sprztu na ktrym pracuje.
Pierwszy program
<?php
print("Witaj wiecie\n");
?>
Zapisz ten program w pliku z rozszerzeniem *.php i wpisz adres do niego w przegldarce
W wyniku dziaania naszego programu w przegldarce powinien pojawi si napis: " Witaj
wiecie ". Wszystko to dziki funkcji PHP print, ktra umoliwia wywietlenie danych.
Co wida jeszcze ciekawego w tym krciutkim programie ? Widzimy tu dwa znaczniki: " <?
php " i " ?> ". Znaczniki te informuj interpreter jzyka PHP na serwerze gdzie zaczyna si
nasz program i gdzie koczy. I wanie to co znajduje si pomidzy tymi znacznikami
wykonuje i przesya do przegldarki jako wynik w postaci kodu HTML. Kod PHP zazwyczaj
czy si z kodem HTML. Wyglda to tak:
<?php
print("Witaj wiecie\n");
?>
Zmienne
$miasto = "Londyn";
$liczba = 5;
W PHP nie istnieje ograniczenie co do dugoci nazwy zmiennych, wiadomo jednak e nie
nikt nie bdzie tworzy nazw o jakiej niesamowicie due iloci znakw.
Naley rwnie pamita, e PHP rozrnia wielko liter, zmienna $numer i $Numer
bd potraktowane jako dwie rne zmienne.
Zasig zmiennych
W PHP zmienne globalne maj taki sam zasig. Zasig ten rozciga si rwnie na pliki
doczone. Zmienne globalne aby mogy by uyte wewntrz funkcji musz by
zadeklarowane jako globalne:
Plik lib.inc.php
<?php
include( "lib.inc.php ") //doczamy plik w ktrym znajduje si
nasza zmienna
function wypisz_zmienna(){
global $zmienna; //deklaracja wewntrz funkcji zmiennej jako
globalnej
echo $zmienna;
}
wypisz_zmienna();
?>
<?php
function static(){
static $zmienna = 0; //deklaracja zmiennej jako statyznej
echo $zmienna;
$zmienna++;
}
static();
?>
Operatory w PHP
W PHP dostpne s nastpujce operatory:
1.Operatory arytmetyczne
2.Operatory bitowe
3.Operatory porwnania
4.Operatory zwikszania i zmniejszania
5.Operatory logiczne
6.Operatory przypisania
7.Operator trjskadnikowy
8.Operator wykonania
9.Operator kontroli bdw
Opis operatorw od punktu 1 do 6 znajduje si w poniszych tabelach:
Typy danych
PHP sam podczas interpretowania strony ustawia typ zmiennej. To nie programista jawnie ustala jej typ
a jest on ustalany przez PHP w zalenoci od kontekstu w jakim owa zmienna zostaa uyta.
W PHP rozrnia si nastpujce typy danych:
string (text)
Sekwencja Znaczenie
\n nowa linia
\r powrt karetki
\t tabulacja
\\ lewy ukonik
\" cudzysw
\$ znak dolara
W cigu objtym apostrofami jedyne dopuszczalne sekwencje to ukonik (\\) oraz apostrof (\).
Numeryczne typy danych to integer i double. Typ integer reprezentuje liczby cakowite natomiast typ
double liczby zmiennoprzecinkowe (do zapisu liczby zmiennoprzecinkowej uywamy kropki po czci
cakowitej a nie przecinka).
Tablice
Jednym z typw danych w PHP s tablice. Tablicami nazywamy zbir zmiennych o tej samej nazwie,
jednak zmienne te maj inny indeks. Zmienne znajdujce si w tablicy nazywamy elementami tablicy.
$imiona[0] ="Adam";
$imiona[1] ="Ewa";
W ten sposb utworzylimy dwuelementow tablice imiona. Pod indeksem 1 znajduje si element o
wartoci Adam a pod indeksem 2 Ewa. Dokadnie tak samo inicjujemy tablice wartociami
numerycznymi.
$numer[1] = 123;
W PHP nie jest wymagane podawanie typu danych w tablicy (tak jak nie jest wymagane podawanie
typu zmiennych). Nie trzeba te podawa rozmiaru tworzonej tablicy. W tym miejscy PHP rni si od
wielu innych jzykw gdzie tego typu informacje programista jest obowizany jawnie poda.
Indeksy w tablicy wcale nie musza by po kolei. Mona opuci dowolny indeks.
$imiona[2] ="Adam";
$imiona[15]="Ewa";
Aby wywietli konkretny element musisz poda jego indeks.
echo $imiona[15];
W ten sposb zostanie wywietlony cig Ewa.
Elementem tablicy moe by rwnie warto innej zmiennej.
$imie = "Adam";
$imiona[1] = $imie;
Indeksy w tablicy nie koniecznie musza by numeryczne. Dopuszczalne te jest uywanie cigw
znakw. Tablice tego typy nazywa si tablicami asocjacyjnymi.
$kraje["pl"] = "Polska";
$kraje["de"] = "Niemcy";
Aby odwoa si do elementw tablicy asocjacyjnej mona podawa indeksy tablicy zarwno z
cudzysowach jak i bez nich
echo $kraje["pl"];
oraz
echo $kraje[pl];
w efekcie przynios ten sam skutek. W tym wypadku wywietlenie cigu Polska.
Stae
Czasem w programie potrzebujemy reprezentacji ktra nie ma podlega modyfikacji. Przykadowo
wiadomo e tuzin to 12. W takim przypadku potrzebujemy staego obiektu (nie obiektu w rozumieniu
programowania obiektowego) przechowujcego t informacje. W PHP moemy to osign poprzez
stae. Do definicji staej niezbdne jest specjalne sowo kluczowedefine.
Oto jak powoa do ycia sta:
define("TUZIN",12);
I tak oto mamy staTUZINo wartoci 12. Odwoanie si do tej staej moe wyglda w ten sposb:
echo "Tuzin jest to " . TUZIN;
Wynikiem bdzie wywietlenie "Tuzin jest to 12". Przyjto aby nazwy staych pisa wielkimi literami.
Istnieje jednak jedna zasadnicza rnica w uyciu zmiennych i staych. Wynika to z faktu, e stae nie
s poprzedzone znakiem dolara. Konsekwencj tego faktu jest to e PHP nie moe ich odrni od
zwykego tekstu w procesie zmiany nazwy staej na warto. Dlatego uycie staej w cudzysowie
spowoduje wywietlenie nazwy staej a nie jej wartoci. Dlatego nazwa staej musi zawsze wystpowa
poza cudzysowami. W przykadzie wyej w tym celu uyem operatora zczenia.
Ptle w PHP
Niejednokrotnie w naszych programach chcemy aby jaka cze kodu wykonywaa si dopki
okrelony przez nas warunek jest prawdziwy. W tym celu PHP posiada instrukcje ptli.
Ptla while
Oglna posta ptli while jest nastpujca:
while(warunek){
blok instrukcji
}
Podczas dziaania ptli sprawdzany jest warunek. Jeeli warunek ten jest TRUE (prawdziwy), to
wykonywany jest blok instrukcji. Ptla dziaa tak dugo jak dugo warunek jest prawdziwy. Jeeli na
wstpie warunek jest faszywy, to blok instrukcji nie wykona si ani razu.
Ptla do while
Ptla do while jest bardzo podobna w dziaaniu do ptli while. Rni si ona jednak tym e warunek
wykonywania sprawdzany jest na kocu.
do{
blok instrykcji
}while(wyraenie);
Nawet jeeli na wstpie warunek nie bdzie prawdziwy, to i tak raz wykona si blok instrukcji.
Zakoczenie wykonywania ptli oczywicie wystpi w momencie kiedy warunek przestanie by
prawdziwy.
Ptla for
Jest to niezwykle przydatna ptla w sytuacji kiedy musimy wykona jak cz kodu okrelon ilo
razy. Oglna posta jest nastuja:
for(warto pocztkowa licznika; sprawdzanie wartoci licznika; zwikszenie
albo zmniejszenie wartoci licznika){
instrukcje
}
W praktyce wyglda to tak:
for($i=0;$i<10;$i++){
echo $i;
}
W ten sposb wywietlimy kolejne wartoci zmiennej $i (od 0 do 9). Ptla for dziaa wedug
nastpujcego algorytmu:
obliczana jest warto pocztkowa licznika
sprawdzana jest warto licznika (warto warunku)
wykonywane s instrukcje zawarte w bloku
obliczana jest kolejna warto licznika (zwikszana lub zmniejszana).
Ptle for moemy na przykad wykorzysta do sekwencyjnego przegldania tablicy.
<?php
?>
Powyszy kod spowoduje wypisanie wszystkich imion z utworzonej przez nas tablicy imiona.
Wasne funkcje
Funkcje definiowane przez uytkownika s niezwykle wanym elementem optymalizacji kodu. Piszc
swoje skrypty w pewnym momencie na pewno zauwaysz, e pewne jego czci s powtarzane.
Moesz to wanie wyeliminowa poprzez zdefiniowanie funkcji ktra bdzie realizowaa to zadanie.
W PHP funkcje musz by zadeklarowane przed ich uyciem. Funkcje mog przyjmowa argumenty
(domylnie argumenty s przekazywane przez warto) lub mog nie przyjmowa adnych
argumentw. Funkcja rwnie moe zwraca jak warto lub nie.
<?php
function suma($a, $b){
$c = $a + $b;
return $c;
}
echo suma(5,5);
?>
Nasza funkcja suma jak wida przyjmuje dwa argumenty. W ciele funkcji sumuje wartoci tych
argumentw i wynik zwraca dziki instrukcji return. Nastpnie wywoujemy to funkcje i podajemy jako
argument funkcji echo. Powinnimy zobaczy w oknie przegldarki wynik.
napis();
?>
Mamy tu przykad wywoania funkcji w ciele funkcji przez nas definiowanej. Jednoczenie jest to funkcja
ktra nie przyjmuje adnych argumentw i adnych wartoci nie zwraca. Jej zadaniem jest wywietlenie
napisu informujcego jaki mamy dzie.
Jeszcze maa uwaga na temat organizacji kodu. Definicje swoich funkcji najlepiej umieszcza w innym
pliku, np. lib.inc.php a nastpnie docza go do plikw w jakich zamierzamy uywa zdefiniowanych
przez nas funkcji poprzez wyraenie include.
plik lib.inc.php:
<?php
function napis(){
echo "Dzi mamy ".gmdate("d m Y");
}
?>
plik index.php:
<?
include("lib.inc.php"); //Wyraenie docza plik. Jeli nie znajduje si on
w tym samym katalogu pamitaj aby poda jako argument ca ciek do pliku.
napis();
?>
Cookie
Na pewno niejednokrotnie syszae o cookie. Wiele si o nich mwi ale czsto s to opinie bzdurne i
wyssane z palce przez userw internetu ktrzy nic o nich nie wiedz. Tak naprawd cookie to niewinne
mae pliki tekstowe, ktre pozwalaj na przechowanie niewielkiej iloci danych na komputerze klienta.
Niestety nie jest to zbyt pewna metoda przechowywania danych. Powodem tego jest nietrwao plikw
cookie (na przykad zmiana przegldarki powoduje ich utrat) oraz nie wszyscy uytkownicy bd mieli
wczon ich obsug. Z tego powodu jeeli dane ktre chciaby przechowa s krytyczne dla aplikacji
nie powiniene uywa cookie (alternatywne metody omwione zostan w dalszej czci kursu).
Do czego mog by potrzebne pliki cookie ? Mona je wykorzysta np. do zapamitania preferowanego
przez uytkownika wygldu witryny. Wykorzystywane s rwnie w koszykach sklepowych i
mechanizmach logowania w witrynie. Mona rwnie zapisa w nich ostatni wizyt uytkownika na
stronie.
PHP posiada tylko jedn funkcj przeznaczon do tworzenia cookie,setcookie(). Naley bezwzgldnie
przestrzega zasady, e funkcje setcookie() naley wywoa przed wysaniem kodu HTML. Cookie s
ustawiana przez nagwki HTTP, ktre s wysyane przed kodem HTML. Mona rwnie dokona
buforowania wyjcia w celu opnienia wysyania danych do przegldarki a do chwili zdefiniowania
wszystkich cookie.
Definicja funkcji wyglda nastpujco:
int setcookie(string nazwa, string warto, int czas, string cieka, string domena, int bezpieczny)