Ponowne użycie kodu PHP

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");
?>