PHP - Własne funkcje i include

in #polish6 years ago

Powoli kończymy ogólne podstawy PHP i zajmiemy się formularzami i ich parsowaniem. Jednak do tego momentu musimy jeszcze nauczyć się tworzyć własne funkcje i wczytywać kod z innych plików. I dzisiaj się tym zajmiemy.

Własne funkcje

Ogólnie zwykle korzystaliśmy z funkcji wbudowanych w PHP - pozwalały one wykonać jakąś pracę dla nas i zwracały informacje. Dla przykładu gettype zwraca informacje jakiego typu jest zmienna. Wszystko jest fajne, ale czasem trzeba napisać własne funkcje. W jakim celu? By nie kopiować setki razy tego samego kodu.

Czyli funkcja to taki kawałek kodu, któremu wrzucamy parametry i ostatecznie wyrzuca nam wartość. Dla przykładu zróbmy funkcje, która określi czy liczba jest parzysta czy nie.

function czy_jest_parzysta($liczba) {

if($liczba%2==0) {
return true;
}

}

echo czy_jest_parzysta(4);

Stworzyliśmy funkcję czy_jest_parzysta. W nawiasie przyjmuje argumenty (nazwy). Jeśli jest ich więcej to oddzielamy przecinkiem ;)

Wykonywany jest if i jeśli warunek jest prawdziwy to return true.

return to znacznik, który informuje co ma zostać zwrócone. W tym przypadku jest to true (prawda), ale może być liczba czy wyraz. Return również wyłącza funkcje, więc jak coś jest po return to nie zadziała.

Potem poza funkcją mamy "echo czy_jest_parzysta(4)".

Program zadziała tak. Zobaczy funkcje i ją sobie zapisze w pamięci i przejdzie dalej. Następnie wywołuje się echo czy_jest_parzysta(4). W takim razie wywołuje się funkcja z pamięci i podstawia argumenty (w naszym przypadku $liczba ustawia na 4). Następnie wykonuje się kod wewnątrz funkcji. Wykonał się i return zwraca true, które wyświetla echo jako 1.

Ktoś może zapytać - czemu sobie komplikujemy tak życie zamiast za każdym razem sprawdzać. Podstawową przyczyną jest oczyszczenie kodu. W razie jak jest błąd (literówka) to nie poprawiamy setek linijek kodu, bo kilkaset razy użyliśmy błędnie funkcji) - poprawiamy w jednym miejscu.

Drugą ważną rzeczą jest to, że funkcja może wywoływać dużo linijek kodu. Tutaj mamy tylko sprawdzenie czy coś jest liczbą parzystą, a przecież można sprawdzić czy jest to w ogóle liczba (czego nie zrobiliśmy), czy jest większa od 0 i wiele innych kryteriów po których kod zwróci np. "prawdę". Funkcje mogą być naprawdę rozbudowane.

Czyli podsumowując

function nazwa_funkcji($argument1) {
// Jakiś kod
return $argument1;
}
echo nazwa_funkcji(1);

Include

Robimy programy jednoplikowe, ale jak pewnie zdajecie sobie sprawę - często programy są wieloplikowe, podzielone na moduły. Innym modułem jest często strona główna, innym strona z kontaktem. Ale często mają cechy wspólne - na przykład pasek z menu.

O ile nie będziemy pisać paska z menu (nie dziś) o tyle include jest ważną funkcją. Pozwala wczytać do swojego kodu zawartość innego pliku (głównie PHP się tak używa) i wykonać.

Stwórzmy dwa pliki, main.php i kod.php

W main.php dajemy:

<?php

$x=4;
include("kod.php");

A w kod.php:

<?php

echo $x;

I odpalmy main.php. Ogólnie zadziała to tak:

  • Kod utworzy zmienną X i da jej wartość 4.
  • Kod doda do siebie zawartość pliku kod.php (w pamięci)
  • Następnym krokiem jest wyświetlenie X - zwróci 4.

Include to bardzo przydatna funkcja pozwalająca łączyć wiele plików w ostatecznie jeden kod. Nie jest to wykonywane na stałe (a tylko w pamięci komputera), ale można w ten sposób rozbić program na wiele mniejszych podprogramów i plików (np. jeden plik ze zmiennymi, drugi z ogólnym wyglądem strony, trzeci z bazą danych itd). Możemy ładnie porozdzielać sobie kod ;)

I to tyle na dziś moi drodzy.

Rozwiązanie poprzedniego zadania domowego:

for($i=100; $i>0; $i--) {
echo $i.PHP_EOL;
}

Zadanie domowe

Stworzyć funkcje, która:

  • Wykryje czy coś jest liczbą, napisem (stringiem) czy tablicą.
  • Jeśli jest liczbą zwróć "liczba",
  • Jeśli jest napisem, podaj ilość znaków,
  • Jeśli jest tablicą to ile elementów posiada.

Coin Marketplace

STEEM 0.31
TRX 0.11
JST 0.034
BTC 64852.72
ETH 3178.07
USDT 1.00
SBD 4.20