Historia języka
PHP (skrót od Personal Home Page, a później Hypertext Preprocessor) to język programowania, który narodził się w 1994 roku. Jego twórcą jest Rasmus Lerdorf, który pierwotnie stworzył go jako zestaw skryptów w języku C do śledzenia odwiedzin na swojej stronie internetowej. Szybko zyskał popularność, ewoluując z prostego narzędzia do potężnego języka skryptowego po stronie serwera. Wersja PHP 3.0, wydana w 1998 roku, wprowadziła obiektowy model programowania, co znacząco zwiększyło jego możliwości. Kolejne wersje, w tym kluczowa PHP 7, przyniosły ogromne usprawnienia w wydajności. Obecnie język jest rozwijany przez społeczność deweloperów z całego świata.
Główne założenia i wykorzystanie
PHP został zaprojektowany głównie do tworzenia dynamicznych stron i aplikacji internetowych. Jego kod jest wykonywany na serwerze, a następnie generuje kod HTML, który jest wysyłany do przeglądarki użytkownika.
Główne zastosowania:
Systemy zarządzania treścią (CMS): PHP jest podstawą najpopularniejszych CMS-ów, takich jak WordPress, Joomla! czy Drupal. Dzięki temu miliony stron internetowych na świecie działają w oparciu o ten język.
Aplikacje e-commerce: Sklepy internetowe takie jak Magento czy PrestaShop również wykorzystują PHP do obsługi procesów zakupowych, zarządzania produktami i użytkownikami.
Frameworki: Użycie frameworków takich jak Laravel, Symfony czy CodeIgniter pozwala na budowanie zaawansowanych aplikacji webowych w sposób uporządkowany i bezpieczny. Ułatwiają one implementację wzorców projektowych, takich jak MVC (Model-View-Controller).
Proste skrypty: PHP jest idealny do tworzenia formularzy kontaktowych, galerii zdjęć czy systemów blogowych.
Różnice między PHP a innymi językami
Łatwość nauki: PHP jest często postrzegany jako język o stosunkowo łagodnej krzywej uczenia się, zwłaszcza dla początkujących. Jego składnia jest czytelna i prosta.
Integracja z HTML: Kod PHP można łatwo osadzać bezpośrednio w plikach HTML, co ułatwia generowanie dynamicznych treści. W przeciwieństwie do Javy czy Pythona, które zazwyczaj wymagają oddzielnego serwera aplikacji.
Specyfika serwerowa: PHP jest językiem skryptowym po stronie serwera (backend). Oznacza to, że jego kod nie jest widoczny dla użytkownika końcowego. W przeciwieństwie do JavaScriptu, który jest językiem po stronie klienta (frontend).
Popularność i wsparcie: Z uwagi na swoją długą historię i szerokie zastosowanie w CMS-ach, PHP ma ogromną społeczność, która tworzy mnóstwo dokumentacji, forów i bibliotek.
Przyszłość PHP
Mimo rosnącej popularności innych języków, takich jak Python czy Node.js, PHP wciąż ma się dobrze i jest prężnie rozwijany. Jego przyszłość wygląda obiecująco z kilku powodów:
Wydajność: Nowe wersje, zwłaszcza z serii 8.x, przyniosły znaczną poprawę wydajności. PHP 8.0 wprowadziło kompilator JIT (Just-In-Time), który przyspiesza wykonywanie kodu.
Współczesne rozwiązania: Język ewoluował, przyjmując nowoczesne rozwiązania takie jak system typów, funkcje strzałkowe, czy atrybuty. Dzięki temu PHP jest w stanie konkurować z innymi językami w kontekście projektowania dużych, skalowalnych aplikacji.
Rynek pracy: Ze względu na dominację WordPressa i innych CMS-ów opartych na PHP, zapotrzebowanie na programistów PHP pozostaje wysokie.
W skrócie, PHP nie jest już tylko językiem do tworzenia prostych stron, ale potężnym narzędziem do budowania złożonych, wydajnych i nowoczesnych aplikacji webowych.
Zadania:
Historia i rola PHP
Pytanie: Wymień, kto jest twórcą języka PHP i dlaczego ten język początkowo powstał.
Pytanie: Wytłumacz, czym różni się PHP od HTML. Użyj analogii, na przykład "HTML to szkielet domu, a PHP to...".
Pytanie: Podaj trzy przykłady znanych stron lub systemów, które zostały zbudowane przy użyciu PHP. Dlaczego, Twoim zdaniem, PHP jest tak popularny w tym zastosowaniu?
Podstawy składni
Pytanie: Wskaż, jak rozpoczynamy, a jak kończymy blok kodu PHP w pliku HTML. Napisz poprawny zapis.
Pytanie: Jaką funkcję w PHP stosujemy do wyświetlenia tekstu na ekranie? Podaj przykład, który wyświetli napis "Witaj świecie!".
Pytanie: Co to jest zmienna w PHP i w jaki sposób ją deklarujemy? Podaj przykład zmiennej przechowującej wiek.
Aplikacje webowe i serwery
Pytanie: Wytłumacz, dlaczego kod PHP jest nazywany językiem "po stronie serwera" (backend). Co to oznacza w praktyce dla użytkownika końcowego?
Pytanie: Wyobraź sobie, że wysyłasz formularz kontaktowy. Opisz krok po kroku, co dzieje się z danymi od momentu kliknięcia przycisku "Wyślij" w przeglądarce do momentu, gdy serwer przetworzy te dane za pomocą PHP.
Przyszłość i rozwój
Pytanie: Jakie usprawnienia wprowadzono w nowszych wersjach PHP (np. 7.x i 8.x)? Co oznaczają one dla wydajności i bezpieczeństwa aplikacji?
Pytanie: Czy w dobie popularności JavaScriptu i Pythona warto uczyć się PHP? Uzasadnij swoją odpowiedź, biorąc pod uwagę rynek pracy i szerokie zastosowanie języka.
Ćwiczenie 1: Detektyw kodu
Kod:
PHP
$liczba = 10;
if ($liczba > 5) {
echo "Liczba jest większa niż 5 <br>";
if ($liczba < 15) {
echo "Liczba jest mniejsza niż 15 <br>";
}
} else {
echo "Liczba jest mniejsza lub równa 5 <br>";
}
echo "Koniec programu";
Pytania:
Jaka będzie wartość zmiennej $liczba na początku programu?
Który blok kodu zostanie wykonany: ten w instrukcji if czy ten w instrukcji else? Dlaczego?
Czy instrukcja if wewnątrz pierwszej instrukcji if zostanie wykonana? Uzasadnij.
Jaki tekst zostanie wyświetlony na ekranie po wykonaniu tego kodu? Zapisz go dokładnie w takiej kolejności, w jakiej się pojawi.
Ćwiczenie 2: Blokowy labirynt
Start
Wprowadzenie liczby
Sprawdzenie, czy liczba jest większa od 10 (instrukcja warunkowa)
Jeśli tak, wyświetlenie "Liczba jest większa od 10"
Jeśli nie, sprawdzenie, czy liczba jest równa 10 (kolejna instrukcja warunkowa)
Jeśli tak, wyświetlenie "Liczba jest równa 10"
Jeśli nie, wyświetlenie "Liczba jest mniejsza od 10"
Koniec
Pytania:
Co robi ten algorytm? Opisz jego działanie swoimi słowami.
Jakie instrukcje sterujące zostały użyte w tym schemacie blokowym?
Co się stanie, jeśli na wejściu podamy liczbę 7? Prześledź działanie algorytmu krok po kroku.
A co się stanie, jeśli podamy liczbę 10?
Ćwiczenie 3: Zgadywanka liczbowa
Wyobraź sobie, że gram z Tobą w grę "zgadywanka". Wylosowałem liczbę z zakresu od 1 do 20. Twoim zadaniem jest ją odgadnąć.
Twoje próby i moje odpowiedzi:
Próba 1: 12 -> "Za dużo!"
Próba 2: 5 -> "Za mało!"
Próba 3: 8 -> "Za mało!"
Próba 4: 10 -> "Zgadłeś!"
Pytania:
Jaką strategię zastosowałeś, aby odgadnąć liczbę?
Jak komputer mógłby wykorzystać instrukcje sterujące (pętle i instrukcje warunkowe), aby zagrać w tę grę? Opisz to słownie.
Ćwiczenie 4: Sortowanie bąbelkowe
Wyobraź sobie, że masz listę liczb: 5, 2, 8, 1, 4. Chcesz je posortować od najmniejszej do największej. Będziesz to robił ręcznie, używając metody sortowania bąbelkowego.
Sortowanie bąbelkowe polega na porównywaniu sąsiednich elementów i zamienianiu ich miejscami, jeśli są w złej kolejności.
Pytania:
Opisz krok po kroku, jak posortowałbyś tę listę liczb metodą sortowania bąbelkowego.
Ile porównań i zamian miejsc wykonałeś?
Jak można by zapisać algorytm sortowania bąbelkowego w języku PHP, używając pętli i instrukcji warunkowych? (Nie musisz pisać kodu, wystarczy opis słowny).
Przykłady:
Zmienne
Przykład z życia: Zmienna to jak pudełko, do którego możesz włożyć różne rzeczy. Nazwa zmiennej to etykieta na pudełku, a wartość to to, co jest w środku.
Typy Skalarne
Boolean: Czy użytkownik jest zalogowany? (Tak/Nie)
Integer: Ile lat ma użytkownik?
Float: Jaka jest cena produktu?
String: Jakie jest imię i nazwisko użytkownika?
Typy Złożone
Array: Lista zakupów, gdzie każdy element ma swój numer (indeks)
Object: Opis samochodu, gdzie właściwości to marka, model, kolor, a metody to uruchom silnik, otwórz drzwi.
Typy Specjalne
Resource: Uchwyt do pliku, który otworzyliśmy, aby coś z niego odczytać lub do niego zapisać
NULL: Puste pole w formularzu, które użytkownik jeszcze nie wypełnił
Operatory
5 + 3 = 8
10 / 2 = 5
"Hello" . " " . "world!" = "Hello world!" (operator konkatenacji .)
$age >= 18 (sprawdzenie, czy użytkownik jest pełnoletni)
Zadania
1. Dopasowywanie - dopasuj zmienne do typów danych:
Zmienne:
$liczba_uczniow
$srednia_ocen
$czy_jest_pelnoletni
$imie_nazwisko
$cena_biletu
Typy danych:
Integer
Float
Boolean
String
2. Prawda czy fałsz:
W PHP nazwy zmiennych mogą zaczynać się od cyfry.
Typ danych NULL oznacza, że zmienna nie ma przypisanej żadnej wartości.
Operator = służy do porównania dwóch wartości.
Typ danych array służy do przechowywania kolekcji wartości.
PHP jest językiem statycznie typowanym.
3. Uzupełnianie luk:
W PHP nazwy zmiennych zawsze zaczynają się od znaku ___.
Typ danych ____ służy do przechowywania liczb całkowitych.
Operator ____ służy do sprawdzenia, czy dwie wartości są różne.
Typ danych ____ przechowuje wartość logiczną prawda lub fałsz.
Zmienna typu ____ może przechowywać adres strony internetowej
4. Krótkie odpowiedzi:
Wyjaśnij różnicę między typami danych integer i float.
Podaj przykład sytuacji, w której użyłbyś typu danych array.
Czym charakteryzuje się język dynamicznie typowany, taki jak PHP?
Jaka jest rola operatorów w PHP? Podaj przykład.
Co oznacza, że zmienna ma wartość NULL?
5. Scenariusze z życia:
Chcesz zapisać informacje o swoim ulubionym filmie (tytuł, rok produkcji, reżyser, ocena). Jakie typy danych i zmienne byś wykorzystał?
Tworzysz aplikację do śledzenia swoich wydatków. Jakie typy danych będą potrzebne do przechowywania informacji o każdej transakcji (data, kwota, kategoria)?
Chcesz sprawdzić, czy użytkownik podał poprawny wiek w formularzu rejestracyjnym (musi być pełnoletni). Jak to osiągnąć za pomocą zmiennych i operatorów?