Back to Top

Czego nauczysz się po ćwiczeniu 2 - zmienne

  • czym jest zmienna i jakie są jej typy

  • jak rozpoznać typ zmiennej i jakie występują typy

  • w jakiej kolejności należy napisać kod, aby uzyskać pożądany efekt

  • jak radzić sobie z błędami w kodzie

Składnia kodu

W programowaniu każdy znak jest istotny, nawet jeśli jest to spacja czy znak nowej linii (tzw. enter). Znaki białe, czyli „spacja” i „enter”, używane są do formatowania kodu aby był łatwiejszy w czytaniu. Wszak kod piszemy dla ludzi i od jego ułożenia może zależeć to, czy będzie łatwiejszy w zrozumieniu. Komputer i tak musi “przetłumaczyć” instrukcje na niskopoziomowy kod, więc z jego punktu widzenia nie ma to znaczenia. Czym lepiej opisany i udokumentowany kod, tym prościej jest go zrozumieć i w przyszłości poprawić lub dodać nową funkcję.

W poprzednim ćwiczeniu wypisaliśmy napisy i podzieliliśmy je między sobą, używając znaku końca linii. Używaliśmy do tego celu pierwszej poznanej komendy w PHP, czyli “echo”. Powoduje ona wypisanie podanego tekstu na stronie internetowej. Po niej następuje napis oraz średnik. Średnik w PHP to znak specjalny, oznaczający koniec komendy. Jeśli byśmy go nie użyli to program oczekiwałby jej, gdyż “nauczony” jest wykonywać jedną komendę jednocześnie. Do oddzielenia napisów na stronie moglibyśmy również użyć języka HTML i osadzić go bezpośrednio w kodzie PHP.

Dzieje się tak gdyż PHP jest językiem interpretowanym, co oznacza, że istnieje „program”, który dokonuje rozpoznania kodu.

Interpreter PHP, bo o nim mowa, może działać w dwóch trybach:

  • HTML,

  • PHP.

Dzięki temu w plikach PHP możemy pisać zarówno kod PHP, jak i HTML. My w ćwiczeniach używamy środowiska repl.it, więc nie musimy tworzyć żadnych plików. Jednakże informacja ta przyda się w przyszłości, szczególnie jeśli chcesz rozwijać umiejętność programowania.

Jeśli w skrypcie jest błąd składniowy, skrypt będzie wykonywany tak długo aż natrafi na ten błąd. W takim przypadku podane zostaną następujące informacje:

  • typ błędu,

  • plik, w którym ten błąd wystąpił,

  • linia zawierająca błąd.

Pod poniższym linkiem przygotowany jest kod, który powoduje błąd. Uruchom go, aby zobaczyć jak zareaguje na niego PHP.

Przykład 1

Uncaught Error: Call to undefined function echo_error() in /run_dir/repl.php(68) : eval()'d code:3

Komunikat wskazuje, że nie zna funkcji echo_error() i zatrzymał się w linii 3.

Taka komenda (zwana również funkcją) po prostu nie istnieje. Zmień nazwę na właściwą – tą, którą już używaliśmy aby dalszy kod mógł zostać uruchomiony.

Zmienne w PHP

Zmienna to obszar w pamięci komputera, w którym programista może umieścić jakieś wartości aby następnie je odczytywać i użyć. Każda nazwa zmiennej w PHP musi być poprzedzona znakiem dolara $. Po tym znaku następuje nazwa zmiennej, która składa się z dowolnej liczby, liter, cyfr i ewentualnie z niektórych znaków specjalnych, ale uwaga!

Zmienne są czułe na wielkość znaków.

Poniżej przykład dwóch różnych zmiennych oraz przypisania do nich wartości liczbowych 1 oraz 12.

// Przykład przypisania wartości do dwóch różnych zmiennych 
$test = 1;
$TEST = 12;

Oprócz przypisania wartości jest też przykładowy kod wyświetlający jej zawartość. Do wyświetlenia zawartości zmiennej służy również komenda echo.

// Wyświetlanie wartości zmiennych 
echo $test;
echo $TEST;

Typy zmiennych w PHP

W PHP nie trzeba podawać typu zmiennych (czy jest to liczba, napis, wartość logiczna itp.). PHP sam wykryje typ na podstawie przypisywanej wartości.

W PHP mamy m.in. do dyspozycji takie typy danych jak:

  • liczba: integer, float

  • napis: string

  • logiczna: boolean

Zaczniemy od omówienia podstawowych typów liczbowych, których – jak sama nazwa wskazuje – możemy używać do przechowywania liczb. Typ integer służy do przechowywania liczb całkowitych (dodatnich i ujemnych).

//Zmienna liczbowa typu int - całkowita  
$int = 5;
$old = -100;

Typ float służy do przechowywania liczb z wartością po przecinku (w informatyce zwanych liczbami zmiennoprzecinkowymi).

//Zmienna liczbowa typu float - posiada wartość po przecinku
$float = 7.5;

Typ string służy do przechowywania sekwencji (ciągu) znaków. Inaczej nazywany typem łańcuchowym. Ograniczenie długości napisu to 2GB (czyli w praktyce go nie ma).

Ciągi znaków możemy tworzyć na co najmniej dwa sposoby:

  • za pomocą apostrofu,

  • za pomocą cudzysłowu.

O różnicy pomiędzy tymi dwoma sposobami tworzenia stringów dowiemy się w dalszej części.

// Zmienna łańcuchowa tzw. string. 
$str = "to jest napis wartościowy";
$best = 'Napis bez wartości';

Typ boolean to typ logiczny przyjmujący tylko dwie wartości:

  • true - prawda,

  • false - fałsz

Wykorzystywany jest przy konstruowaniu wyrażeń logicznych oraz sprawdzania warunków. Zmienną typu boolean deklarujemy w podobny sposób jak zmienną tekstową zawierającą słowo false lub true lecz bez apostrofu ani cudzysłowu.

Do czego w praktyce służy ten typ zmiennej będzie opisane w kolejnej części poświęconej instrukcjom warunkowym.

Sprawdzenie typu zmiennej

W przypadku gdybyśmy chcieli sprawdzić typ zmiennej musimy do tego celu użyć komendy var_dump(), wpisując w nawiasy okrągłe nazwę zmiennej, której typ chcielibyśmy poznać.

//Sprawdzenie typu zmiennej
var_dump($int);

Podobnie jak komenda echo służyła do wyświetlenia zawartości zmiennej lub po prostu tekstu tak komenda var_dump wyświetla jej typ oraz wartość jednocześnie.

Nie używamy jej w zamianie z komendą echo, lecz jedynie w celu poznania typu zmiennej i wyświetlania jej zawartości w czytelny sposób. Nie zawsze będziemy mieli do czynienia z typami zmiennych, które poznaliśmy, gdyż istnieją również bardziej skomplikowane formy, jak np. obiekty.

Zadanie 1

Popraw komendę z wiersza 3 aby nie powodowała błędu i można było uruchamiać dalszy kod. W celu testowym spróbuj wyświetlić za pomocą komendy echo wartość zmiennej, która nie istnieje. Wstaw tę błędną komendę w różnych wierszach i sprawdź jak zmienia się komunikat błędu. Popraw nazwę zmiennej na prawidłową, czyli na taką utworzona wcześniej, np. $old. Co się stanie jak przesuniemy komendę echo nad deklarację zmiennej $old ?

Odpowiedź napisz w komentarzu.

Zadanie 2

Zadanie polega na utworzeniu kilku zmiennych i przypisaniu im odpowiedniej wartości.

Wartości te powinny być następujących typów:

  1. liczba całkowita

  2. liczba zmiennoprzecinkowa

  3. String (napis)

  4. wartość logiczna

Nie ma znaczenia jakie wartości wstawisz – ważne aby były odpowiedniego typu.

Zadanie 3

Określ typ zmiennych utworzonych w poprzednim zadaniu używając komendy var_dump(). Opatrz komentarzem każdą zmienną, wpisując dokładnie to, co wyświetla komenda var_dump().