Warning: Cannot modify header information - headers already sent by (output started at /homez.318/rsdownlo/www/kursphp/wp-config.php:1) in /homez.318/rsdownlo/www/kursphp/wp-content/plugins/ozh-who-sees-ads/wp_ozh_whoseesads.php on line 620

Warning: Cannot modify header information - headers already sent by (output started at /homez.318/rsdownlo/www/kursphp/wp-config.php:1) in /homez.318/rsdownlo/www/kursphp/wp-content/plugins/ozh-who-sees-ads/wp_ozh_whoseesads.php on line 621
Funkcje - rozwiązania | Kurs PHP - stwórz MMORPG

Funkcje - rozwiązania

To pora na rozwiązania. Wyszedł z tego sporo plik, więc będę wrzucał go po kawałeczku i od razu tłumaczył.

function dodaj($a,$b)
{
    return ($a+$b);
}
function odejmij($a,$b)
{
    return ($a-$b);
}
function pomnoz($a,$b)
{
    return ($a*$b);
}

Proste jak budowa cepa. Zauważcie, że nie trzeba tworzyć jakiejś zmiennej pomocniczej, do której zapisywany jest wynik - można od razu zwracać działanie.

function podziel($a,$b)
{
    if(!$b)
    {
        echo "Pamiętaj cholero, nie dziel przez zero!<br />";
        return false;
    }
    return ($a/$b);
}

Pierwsza trudniejsza funkcja (choć i tak banalnie prosta). Jeśli podzielnik jest równy zero, wyświetlamy na ekranie komunikat o niedzieleniu przez zero. Zauważcie, że w ifie jest return - czyli wychodzimy w tym miejscu z funkcji i nie wykonujemy jej dalej.

function podziel2($a,$b)
{
    if(!$b)
    {
        throw new Exception ("Pamiętaj cholero, nie dziel przez zero!", 001);
    }
    return ($a/$b);
}

Przypadek prawie identyczny jak poprzedni z tymże zamiast obsłużyć zdarzenie niedozwolone na miejscu, rzucamy wyjątkiem (wyjątek obsługujemy w innym miejscu). Więcej o wyjątkach a następnych lekcjach.

try
{
    $a=3;
    $b=5;
    echo $a."+".$b."=".dodaj($a,$b)."<br />";
    echo $a."-".$b."=".odejmij($a,$b)."<br />";
    echo $a."*".$b."=".pomnoz($a,$b)."<br />";
    echo $a."/".$b."=".podziel2($a,$b)."<br />";
}
catch (Exception $wyjatek)
{
    echo $wyjatek->getMessage();
}

Wyświetlenie wyników. Proste. Jedyna rzeczą skomplikowaną bardziej (dla początkujących) jest obsługa wyjątków. Na razie nie będę się tym zajmował - od wyjątków będą następne lekcję.

function kompak($a,$b,&$tab)
{
     $tab[0]=dodaj($a,$b);
    $tab[1]=odejmij($a,$b);
    $tab[2]=pomnoz($a,$b);
    $tab[3]=podziel($a,$b);
}

Funkcją łącząca wszystkie funkcję w całość. Jak da się zauważyć, funkcja nie musi niczego zwracać. Nie musi mieć także żadnych argumentów.

$dane=array();
$dane[]=array("1","2");
$dane[]=array("2","3");
$dane[]=array("4","5");
$dane[]=array("6","7");
$dane[]=array("8","9");
$dane[]=array("10","11");
$dane[]=array("12","13");
$dane[]=array("14","15");
$dane[]=array("16","17");

$tablica_wynikowa=array();
$licznik=0; //licznik tablicy wynikowej
foreach ($dane as $wiersz)
{
    kompak($wiersz[0],$wiersz[1],$tablica_wynikowa[$licznik]);
    $licznik++;
}

Pierwsze co robimy to tworzymy tablice z danymi. Jest to tablica dwuwymiarowa. Następnie dla każdej pary danych, przekazujemy do funkcji tą parę oraz kolejny element tablicy wynikowej. Pod tym elementem tablicy zostaje utworzona koljena tablica z wynikami. W ten oto sposób mamy kolejna tablicę dwuwymiarową.

Mam nadzieję, że wszystko jest jasne, jeśli jednak tak nie jest, to zachęcam do zadawania pytań w komentarzach.

Dodaj swój komentarz