Początek kodu, zmienne, tablice

1.    Wstęp

Zanim zaczniesz czytać dalszą część poradnika musisz posiadać podstawową wiedzę na temat programowania – zmienne, pętle czy funkcje – te pojęcia powinny być Ci znane. Jeżeli udało Ci się przebrnąć już kiedyś przez Pascala czy podstawy C/C++, to mam nadzieję, że bez problemu odnajdziesz się w kolejnych rozdziałach mojego poradnika do PHP. Bardzo często będę używał porównań właśnie do języka C/C++ w celu zobrazowania różnic.

2.    Początek kodu

W C++ po prostu piszemy kod. W pliku *.cpp załączamy interesujące nas biblioteki, tworzymy funkcje, inicjujemy zmienne itd. Wszystkie linie wpisane przez nas (oczywiście oprócz tych, które oznaczyliśmy jako komentarze) zostaną potraktowane przez kompilator jako kod, który musi odpowiednio przetłumaczyć na język maszynowy. Ponieważ często (choć nie jest to zasadą) język PHP przeplata się np. z HTML-em, nasz serwer, a w zasadzie interpreter PHP musi wiedzieć, który kod ma być wykonywany po stronie serwera, a który ma zwrócić do klienta. Aby poinformować nasz interpreter w którym miejscu ma zacząć „tłumaczyć”, umieszczamy nasz kod w znacznikach:

<!--?php //nasz kod php ?-->

Przy takim oznaczeniu interpreter wie, że ten kod ma zostać wykonany po stronie serwera i nie może wyświetlić go użytkownikowi.
Jeżeli nasz kod PHP przeplata się z HTML-em:

 

znacznik <?php musi być bezwzględnie zamknięty. W innym przypadku nasz serwer będzie próbował wykonać kod, który jest kodem HTML jako skrypt PHP co będzie powodować błędy. Wyjątkowym przypadkiem jest plik, który w całości zawiera kod PHP. W takim przypadku nie powinniśmy go zamykać.

3.    Zmienne

Już na samym początku widzimy zasadniczą różnicę między C/C++ a PHP. W tych pierwszych musimy najpierw zadeklarować zmienną oraz określić jej typ np.

int a = 10;      //zmienna typu całkowitego
char b = ‘b’;    //zmienna typu znakowego
float c = 10.23; //zmienna typu zmiennoprzecinkowego

W przypadku PHP wygląda to inaczej. Aby interpreter PHP rozpoznał, że chcemy użyć zmiennej, a nie np. funkcji, przed jej nazwą umieszczamy znak $.  Zmiennych nie musimy deklarować przed ich użyciem. Możemy je tworzyć „w locie”. Jeżeli chcemy wynik jakiejś funkcji przypisać do zmiennej wpisujemy:

$zmienna = funkcja();

Deklaracja tych samych zmiennych, których przykład umieściłem powyżej, w języku PHP wygląda tak:

$a = 10;    //zmienna typu całkowitego
$b = 'b';   //zmienna typu znakowego
$c = 10.23; //zmienna typu zmiennoprzecinkowego

Istnieje jeszcze jedna właściwość zmiennych w PHP o której warto wspomnieć. Na potrzeby jakiejś funkcji potrzebujemy stworzyć zmienną chwilową $tmp. Typ zmiennej określamy dopiero w momencie przypisania do niej wartości – nie musi on być jednak taki sam w całym naszym programie. Do zmiennej $tmp możemy najpierw przypisać liczbę całkowitą, później zmiennoprzecinkową, a kilka linii dalej ciąg znaków czy nawet tablicę.

4.    Tablice

A jeżeli już przy tablicach jesteśmy to też mają one bardzo ciekawe własności. W PHP używamy tablic asocjacyjnych – nie musimy ich indeksować liczbami całkowitymi. Typową, jednowymiarową tablicą asocjacyjną jest np. kwestionariusz osobowy:

Imię Jan
Nazwisko Nowak
PESEL 80123112345

Taką tablicę możemy stworzyć w następujący sposób:

$osoba = array('imię' => 'Jan',
		'nazwisko' => 'Nowak',
		'PESEL' => 80123112345);

W przypadku języka C++, mogliśmy w bardzo prosty sposób poruszać się po zwykłej, indeksowanej tablicy np. za pomocą pętli for. Inicjalizowaliśmy licznik który wskazywał nam na konkretny element tablicy i w tej właśnie pętli wykonywaliśmy interesujące nas operacje np.

for (int i = 0; i < 10; i++) {
	cout << tablica[i] << endl;
}

W przypadku PHP, jeżeli tablica nie jest indeksowana w ten sposób, musimy wykonać to inaczej. Tutaj przydatną funkcją, jest funkcja foreach.

foreach ($osoba as $wartosc) {
	echo $wartosc . '
';
}

lub

foreach ($osoba as $klucz => $wartosc) {
	echo $klucz . ' - ' . $wartosc . '
';
}

Na przykładzie tablicy $osoba, w której umieściliśmy dane Nowaka, pierwszy foreach wypisze na ekranie wszystkie wartości wpisane do tablicy oraz zakończy znakiem przerwania linii:

Jan
Nowak
80123112345

Dzięki zastosowaniu konstrukcji, w której używamy zmiennej $klucz, możemy również dostać się do nazw kolejnych pól w tablicy. Efektem wywołania drugiego foreach’a będzie:

imię - Jan
nazwisko - Nowak
PESEL - 80123112345

5.    Podsumowanie

Po przeczytaniu tego poradnika powinieneś potrafić zagnieżdżać kod PHP pomiędzy znacznikami HTML, stworzyć szkielet pliku w całości napisanego w PHP, używać zmiennych oraz zmiennych tablicowych, a także poruszać się po tablicach za pomocą pętli foreach.

WAMP – Instalacja i konfiguracja

1.    Co to jest Wamp?

WAMP to skrót od Windows Apache MySQL PHP – odpowiednik Linuxowego LAMP-a. Z poziomu jednego instalatora możemy zainstalować kilka usług na naszym komputerze. Najważniejsze usługi które uruchomimy po instalacji to:

  • Apache – serwer WWW. O ile pliki *.html oraz *.js o które te pierwsze są rozszerzane możemy otworzyć po prostu za pomocą przeglądarki o tyle skrypty PHP są wykonywane po stronie serwera i dopóki takowego nie ma, nie będą mogły po prostu zadziałać.
  • MySQL – serwer bazodanowy. Tworzenie stron w oparciu o PHP bez żadnego serwera bazodanowego praktycznie nie ma sensu. Za pomocą PHP chcemy, aby strona była bardziej żywa – nie była statyczną stroną na której zawsze wyświetla się to samo. Chcielibyśmy dodać post na naszego bloga czy dodać użytkowników do strony – wszystko to zapiszemy w naszej bazie danych.
  • PHP – to po prostu moduł do naszego serwera Apache w którym zaszyty jest interpreter PHP, dzięki niemu skrypty napisane przez nas dają widoczny efekt.

Celowo poradnik jest pisany pod Windowsa, ze względu na to, że moje próby obsługi LAMP-a zawsze kończyły się zmarnowanym czasem na naprawianie błędów z którymi nigdy nie spotykałem się na Windowsie.

2.    Instalacja Wamp-a

Najprostszym sposobem jest oczywiście wejście na stronę http://www.wampserver.com/en/ i pobranie odpowiadającej nam wersji (x64 lub x86). Sama instalacja przebiega standardowo, po wyklikaniu wszystkich „nextów” powinniśmy móc uruchomić nasz serwer. W zasobniku systemowym powinna pojawić nam się ikonka wamp - zielona ikona . Jeżeli będzie ona pomarańczowa (wamp - pomarańczowa ikona) to prawdopodobnie mamy włączonego Skypa który korzysta z tych samych portów co WAMP. Wystarczy wyłączyć Skypa, zrestartować usługi WAMP’a i gotowe.

3.    Dodanie pierwszej strony

Pracować będziemy na Aliasach – za ich pomocą mapujemy ścieżkę dostępu z naszego systemu plików jako nazwę naszej strony. Po wpisaniu w przeglądarkę http://127.0.0.1/mojastrona, zaczniemy wyświetlać pliki z katalogu D:\www\mojastrona. Aby to zrobić wystarczy wykonać kilka prostych kroków:

  • Tworzymy folder D:\www\test\
  • Klikamy LPM na ikonkę WAMP’a
  • Wyszukujemy opcję Apache>Alias directories>Add dan alias
  • Wpisujemy nazwę naszego aliasu np. „test” po czym wciskamy ENTER
  • Następnie podajemy ścieżkę dostępu do naszego katalogu w którym będziemy trzymać nasze pliki PHP. Należy pamiętać o użyciu notacji linuxowej tzn. ukośniki skierowane w prawo / „D:/www/test/” – bardzo ważnym elementem jest również ukośnik na końcu ścieżki dostępu, dzięki czemu serwer będzie wiedział, że chodzi nam o katalog.

W ten sposób stworzyliśmy nasz alias. Teraz możemy wejść do naszego katalogu D:/www/test/, stworzyć tam plik index.php a jako zawartość możemy wpisać:

1
&lt;!--?php echo 'Hello World';

Otwieramy naszą przeglądarkę i wpisujemy http://localhost/test/. Naszym oczom powinien ukazać się piękny napis „hello World”.

4. Jak działa serwer WWW

Na ten temat można napisać sporych rozmiarów wypracowanie, natomiast ja skupię się na kilku najważniejszych elementach. Po wpisaniu interesującego nas adresu, serwer wyszukuje pliku „index”– czyli głównego pliku strony. Następnie na podstawie jego zawartości tworzy kod HTML który zostanie wysłany do użytkownika. W momencie w którym trafimy na znacznik początku kodu PHP (<?php), nasz interpreter analizuje skrypt i wykonuje wszystkie zadeklarowane w nim funkcje. Ot cała filozofia. Wszystkie skrypty PHP wykonywane są po stronie serwera. Użytkownik nie może podejrzeć jego zawartości, a jedynie wyświetlić kod jaki zwróci mu serwer. Tak wygląda fragment pliku
wp-config.php – pliku konfiguracyjnego WordPressa:

define('DB_NAME', 'wp');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_HOST', 'localhost');

Widzimy tutaj dane dostępu do bazy danych. Gdyby użytkownik mógł wyświetlić zawartość pliku *.php, mógłby nam zrobić w niej niemałe zamieszanie.

5.    Podsumowanie

Po przeczytaniu tego poradnika powinieneś potrafić stworzyć bazę do swojego projektu PHP, czyli działający serwer za pomocą którego będziesz wykonywał swoje skrypty. W kolejnej części omówię składnię PHP, jednak wymagana będzie minimalna wiedza na temat programowania – co to są zmienne, funkcje itp.