POWRÓT NA STRONĘ SZKOŁY

Zastosowanie funkcji include() i require()

Kolejnym krokiem w poznaniu tablic, będzie wykonanie kilku ćwiczeń. W tym celu potrzebna będzie tablica liczb losowych, indeksowana numerycznie o losowej liczbie elementów. Zdefiniujemy funkcję, która będzie taką tablicę generować. To już umiemy robić. Więc w czym problem? Byłoby dobrze, aby taką funkcję zdefiniować jeden raz, a potem wykorzystywać w różnych skryptach. Czy to jest możliwe? Nie ma problemu, wystarczy że definicja będzie umieszczona w oddzielnym pliku.

Podczas omawiania tworzenia własnych funkcji wspomnieliśmy o zastosowaniu funkcji include() oraz require(). Pozwalają one wstawić do skryptu kod zapisany w oddzielnym pliku. Taka możliwość pozwala tworzyć oddzielne biblioteki funkcji, wielokrotnie wykorzystywanych przez różne skrypty.

Którą funkcję zastosujemy? Podstawowa róznica jest taka, że w przypadku niepowodzenia include() generuje ostrzeżenie (Warning) i pozwala na dokończenie skryptu jeżeli jest to możliwe bez dołączanego kodu, natomiast require() w takiej sytuacji wyrzuca błąd krytyczny (Fatal Error), co kończy wykonywanie skryptu. Takie działanie jest najczęściej korzystniejsze dla programisty, ponieważ zabezpiecza skrypt, przed skutkami wykonania obarczonego błędem. W naszych ćwiczeniach będziemy stosować funkcję require_once(), która dba o to, aby plik dołączony został tylko jeden raz, ponieważ ponowne dołączenie tej samej biblioteki funkcji skutkuje błędami. W prostych skryptach, które tworzymy, co prawda nie ma takich niebezpieczeństw, ale uczmy się na dobrych wzorach.

Ćwiczenie 2_3_0_1. Definiowanie własnej funkcji dołączanej za pomocą require_once()

Należy zdefiniować funkcję, która generuje tablicę liczb losowych z zakresu od 0 do 100. Liczba elementów tablicy jest losowana z zakresu od 1 do 10. Definicję funkcji, należy umieścić w pliku moje_funkcje.php. Zwróć uwagę, że tym razem nie będzie do dokument HTML, tylko plik tekstowy, którego zawartość ma być następująca:

<?php
  function funkcja_1()
  {
    instrukcja_1;
    ...
    instrukcja_n;
    return $wynik;
  }
  ...
  function funkcja_n()
  {
    instrukcja_1;
    ...
    instrukcja_n;
    return $wynik;
  }
?>  

Jak widzimy w pierszym wierszu pliku mamy zapis <?php, natomiast w ostatnim ?>. Między tymi znacznikami znajdują się definicje funkcji. Dla naszych potrzeb, będzie to na razie jedna funkcja, nazwijmy ją liczby(). W przyszłości, będziemy w pliku moje_funkcje.php umieszczać inne własne funkcje, dlatego ważne jest miejsce jego zapisania. Powinien on być jednakowo dostępny dla wszystkich skryptów, tworzonych na różnych zajęciach. Umówiliśmy się, że pojedynczy plik ze skryptem powinieneś zapisywać zgodnie ze ścieżką xampp/htdocs/moje_nazwisko_bez_ogonkow/cwicz_nr/cwicz_nr.php. Tak więc nasz plik moje_funkcje.php, powinien się znaleźć w katalogu moje_nazwisko_bez_ogonkow. Z poziomu skryptu znajdującego się w pliku cwicz_nr.php, ścieżka do moje_funkcje.php, będzie następująca: ../moje_funkcje.php. Jeżeli masz problem z adresowaniem względnym, to zajrzyj do odpowiedniej partii materiału w podstawach HTML5.

W celu wykonania ćwiczenia, plik moje_funkcje.php powinien zawierać:

<?php
  function liczby()
  {
    $ile_elementow=rand(1,10);
    for ($i=0;$i<$ile_elementow;$i++)
    $tablica_liczb[]=rand(0,100);
    return $tablica_liczb;
  }
?>

Sprawdzimy jak działa nasza funkcja, wyświetlając elementy tablicy, którą tworzy.

<body>
  <?php
    require_once('../moje_funkcje.php');
    $liczby=liczby();
    foreach ($liczby as $liczba) 
    echo $liczba.', ';
  ?> 
</body>

Jeżeli zapomniałeś jak przygotować i gdzie zapisywać pliki testowe: