Zajmiemy się teraz strukturami PHP, które umożliwią nam wielokrotne korzystanie z tego samego kodu. Czyli tworzymy je tylko 1 raz a później w razie potrzeby odwołujemy się do nich. Do takich struktur należą:
- Funkcje,
- Klasy,
- Instrukcje include i require,
- Funkcja readfile().
O instrukcjach Instrukcje include i require pisałam już tutaj! Dlatego tylko o nich trochę wspomnę tutaj a o bardziej praktycznym zastosowaniu poczytacie pod linkiem.
Funkcje
To właśnie dzięki możliwości tworzenia różnego typu funkcji PHP odniosło sukces. Opcja ta ułatwia bowiem pracę i umożliwia budowanie różnego typu serwisów. Na początku kiedy jeszcze nie do końca wie się jak tego typu struktury działają może to wydawać się czarną magią, ale w miarę czasu i zdobywania praktyki to się zmieni.
Warto dodać, że w obecnej wersji PHP mamy już gotowych ponad 1000 funkcji. Są one już wbudowane w serwer (zainstalowany skrypt), dlatego też w zależności od tego jaką wersje PHP ma nasz serwer mogą działać trochę inaczej (a mogą już lub jeszcze nie działać). Przykładowymi wbudowanymi funkcjami są: array(), each(), list(), implode()
.
Z pewnością niektóre z nich kojarzycie. A w związku z tym już wiecie, że te funkcje można:
- wywołać praktycznie w dowolnym miejscu,
- używać wielokrotnie,
- ustawić / dodać parametry zgodnie ze składnią funkcji.
Podobnie, choć nie do końca będzie z funkcjami tworzonymi przez nas samych. Funkcje te będą jednak działały tylko w plikach gdzie znajduje się sama funkcja oraz innych powiązanych z nim.
Jak samodzielnie utworzyć funkcję?
Przykładowa funkcja może wyglądać tak:
function myMessage() {
echo "Witaj świecie!";
}
myMessage();
Jak widać jej struktura jest stosunkowo prosta. Mamy więc tutaj:
function nazwa_Funkcji { polecenia_PHP}
Warto zapamiętać, że każda nowa funkcja zaczyna się od function
następnie mamy jej nazwę, { } (nawiasy) w których umieszczamy polecenie. W przykładzie jest echo "";
czyli wypisanie treści.
Do samej funkcji odwołujemy się poprzez jej nazwę oraz nawiasy okrągłe (np. nazwa_Funkcji(); ). Nie zapomnijcie o średniku na koniec!
Funkcje z możliwością dodawania zmiennych
function familyName($fname) {
echo "$fname Nowak.<br>";
}
familyName("Anna");
familyName("Kris");
familyName("Tomek");
familyName("Maja Jan");
familyName("Ellen");
Wynikiem będzie:
Anna Nowak.
Kris Nowak.
Tomek Nowak.
Maja Jan Nowak.
Ellen Nowak.
Inny przykład z 2 zmiennymi
function familyName($fname, $year) {
echo "$fname Refsnes. Born in $year <br>";
}
familyName("Maja","1985");
familyName("Agata","1968");
familyName("Maja Jan","1983");
Wynik zadania
Maja Refsnes. Born in 1985
Agata Refsnes. Born in 1968
Maja Jan Refsnes. Born in 1983
W tym wypadku:
- $fname – pierwszy element / parametr,
- $year – drugi parametr.
Klasy
Zadaniem klas (class) w PHP jest tworzenie obiektów, predefiniowanych zmiennych do, których możemy się odwoływać w konkretnej aplikacji lub pliku. Jeśli nie miałeś jeszcze do czynienia z tego typu obiektami sama idea może wydać ci się nieco dziwna. Jednak w praktyce jest to bardzo użyteczne a nasz kod zachowa spójność.
Nie musimy bowiem wielokrotnie powtarzać tego samego kodu czy wartości a jedynie się do niego odwołać. Ta właściwość PHP może być przydana np. podczas łączenia się z bazą danych. Każdą nową klasę zaczynamy od class
. Przykład:
class Owoc {
// Properties
public $name;
public $color;
// Methods
function set_name($name) {
$this->name = $name;
}
function get_name() {
return $this->name;
}
}
$apple = new Owoc ();
$banana = new Owoc ();
$apple->set_name('Jabłko');
$banana->set_name('Banan');
echo $apple->get_name();
echo "<br>";
echo $banana->get_name();
Wynik działania
Jabłko
Banan
Więcej ciekawych przykładów znajdziecie -> https://www.w3schools.com/php/php_oop_classes_objects.asp
Instrukcje include i require
Funkcje te umożliwiają połączenie ze sobą kilku plików w formacie PHP. Dzięki czemu nie musimy tworzyć jednego dużego pliku zawierającego cały kod a możemy go podzielić na części. Części, które następnie możemy dołączać do innych plików tworząc bardziej rozbudowane serwisy.
Przykładowo budując witrynę internetową nagłówek, stopka i ciało (<body>) mogą być osobnymi plikami. Spinanymi w całość w kolejnym pliku. Używając przy tym różnego typu warunków można następnie też podmieniać zawartość.
Przykład podłączenia:
include 'drugi.php';
/* lub */
require 'drugi.php';
Więcej na ten temat przeczytacie tutaj.
Funkcja readfile()
Funkcja ta działa podobnie jak omówione przed chwilą include i require. Jednak w przeciwieństwie do nich za jej pomocą do pliku można dołączać np. pliki w formacie HTML, zwykłe pliki tekstowe (takie jak z końcówką TXT).
<?php
echo readfile("plik.txt");
?>