{"id":736,"date":"2022-03-12T16:22:53","date_gmt":"2022-03-12T15:22:53","guid":{"rendered":"https:\/\/piotrgabriel.pl\/wiki\/?p=736"},"modified":"2024-02-18T18:04:49","modified_gmt":"2024-02-18T17:04:49","slug":"php-3-funkcje-definiowanie-zakresy-parametry-i-wbudowane","status":"publish","type":"post","link":"https:\/\/piotrgabriel.pl\/wiki\/php-3-funkcje-definiowanie-zakresy-parametry-i-wbudowane\/","title":{"rendered":"PHP 3 &#8211; Funkcje &#8211; definiowanie, zakresy, parametry i wbudowane"},"content":{"rendered":"<p>Oto trzecia cz\u0119\u015b\u0107 naszej podr\u00f3\u017cy z PHP! Tym razem skupimy si\u0119 na jednym z kluczowych element\u00f3w, jakim s\u0105 funkcje.<!--more--> Dlaczego s\u0105 tak wa\u017cne? Ot\u00f3\u017c, dzi\u0119ki nim nasz kod staje si\u0119 bardziej uporz\u0105dkowany i \u0142atwiejszy w zarz\u0105dzaniu. Funkcje pozwalaj\u0105 nam na wielokrotne wykorzystywanie tego samego fragmentu kodu, eliminuj\u0105c potrzeb\u0119 jego ci\u0105g\u0142ego powtarzania. W tym artykule, kt\u00f3ry jest skierowany g\u0142\u00f3wnie do uczni\u00f3w technikum informatycznego, wprowadzimy Was w \u015bwiat funkcji w PHP. Poka\u017cemy, jak je definiowa\u0107, wywo\u0142ywa\u0107, om\u00f3wimy zakres dzia\u0142ania zmiennych wewn\u0105trz funkcji, parametry, kt\u00f3re mo\u017cemy do nich przekaza\u0107, a tak\u017ce warto\u015bci domy\u015blne. Nie zabraknie r\u00f3wnie\u017c przyk\u0142ad\u00f3w praktycznych oraz om\u00f3wienia wybranych funkcji wbudowanych, kt\u00f3re s\u0105 niezwykle przydatne w codziennej pracy programisty. Gotowi? Zaczynamy!<\/p>\n<h2>1. Definiowanie i Wywo\u0142ywanie Funkcji<\/h2>\n<p><strong>Definiowanie funkcji<\/strong> w PHP jest stosunkowo proste i odbywa si\u0119 za pomoc\u0105 s\u0142owa kluczowego <code>function<\/code>, po kt\u00f3rym nast\u0119puje nazwa funkcji oraz zestaw nawias\u00f3w, w kt\u00f3rych mo\u017cna okre\u015bli\u0107 parametry. Cia\u0142o funkcji zawiera kod, kt\u00f3ry ma zosta\u0107 wykonany po jej wywo\u0142aniu.<\/p>\n<p><strong>Przyk\u0142ad:<\/strong><\/p>\n<p><code>function powitanie() {<\/code><br \/>\n<code>echo \"Witaj w \u015bwiecie PHP!\";<\/code><br \/>\n<code>}<\/code><\/p>\n<p><strong>Wywo\u0142ywanie funkcji<\/strong> odbywa si\u0119 poprzez podanie jej nazwy wraz z nawiasami. Je\u015bli funkcja przyjmuje parametry, w nawiasach nale\u017cy poda\u0107 odpowiednie argumenty.<\/p>\n<p><strong>Zadanie:<\/strong> Napisz funkcj\u0119, kt\u00f3ra wy\u015bwietla powitanie z imieniem u\u017cytkownika.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong><\/p>\n<p><code>function powitanie($imie) {<\/code><br \/>\n<code>echo \"Witaj, \" . $imie . \"!\";<\/code><br \/>\n<code>}<\/code><br \/>\n<code>powitanie(\"Janek\"); \/\/ Wywo\u0142anie naszej funkcji<\/code><\/p>\n<h2>2. Zakres Zmiennych<\/h2>\n<p><strong>Zakres zmiennych<\/strong> odnosi si\u0119 do obszaru kodu, w kt\u00f3rym zmienne s\u0105 dost\u0119pne. W PHP, zmienne zdefiniowane poza funkcj\u0105 maj\u0105 zakres globalny, a te zdefiniowane wewn\u0105trz funkcji &#8211; lokalny.<\/p>\n<p><strong>Zadanie:<\/strong> Zilustruj r\u00f3\u017cnic\u0119 mi\u0119dzy zmienn\u0105 globaln\u0105 a lokaln\u0105.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong><\/p>\n<p><code>$x = 5; \/\/ Zmienna globalna<\/code><\/p>\n<p><code>function testZakresu() {<\/code><br \/>\n<code>$y = 10; \/\/ Zmienna lokalna<\/code><br \/>\n<code>echo $y;<\/code><br \/>\n<code>}<\/code><\/p>\n<p><code>testZakresu();<\/code><br \/>\n<code>\/\/ echo $y; \/\/ takie wywo\u0142anie zmiennej $y poka\u017ce nam b\u0142\u0105d, gdy\u017c $y jest zmienn\u0105 lokaln\u0105 zawart\u0105 wewn\u0105trz funkcji.<\/code><\/p>\n<h2>3. Parametry Funkcji i Warto\u015bci Domy\u015blne<\/h2>\n<p>Funkcje w PHP mog\u0105 przyjmowa\u0107 <strong>parametry<\/strong>, kt\u00f3re pozwalaj\u0105 na przekazanie do funkcji danych z zewn\u0105trz. Parametry te mog\u0105 mie\u0107 r\u00f3wnie\u017c <strong>warto\u015bci domy\u015blne<\/strong>, co pozwala na wywo\u0142anie funkcji bez konieczno\u015bci podawania argument\u00f3w dla wszystkich parametr\u00f3w.<\/p>\n<p><strong>Zadanie:<\/strong> Napisz funkcj\u0119, kt\u00f3ra dodaje dwie liczby. Drugi parametr funkcji powinien mie\u0107 warto\u015b\u0107 domy\u015bln\u0105 r\u00f3wn\u0105 0.<\/p>\n<p><strong>Rozwi\u0105zanie:<\/strong><\/p>\n<p><code>function dodaj($liczba1, $liczba2 = 0) {<\/code><br \/>\n<code>return $liczba1 + $liczba2;<\/code><br \/>\n<code>}<\/code><br \/>\n<code>echo dodaj(5, 3); \/\/ Wy\u015bwietli 8<\/code><br \/>\n<code>echo dodaj(5); \/\/ Wy\u015bwietli 5<\/code><\/p>\n<h2>4. Funkcje Wbudowane<\/h2>\n<p>PHP posiada szeroki zakres <strong>funkcji wbudowanych<\/strong>, kt\u00f3re wykonuj\u0105 r\u00f3\u017cnorodne zadania, od manipulacji ci\u0105gami znak\u00f3w po operacje na plikach i obs\u0142ug\u0119 b\u0142\u0119d\u00f3w.<\/p>\n<p><strong>Zadanie:<\/strong> U\u017cyj funkcji <code>str_replace<\/code> do zast\u0105pienia s\u0142owa &#8222;\u015bwiat&#8221; s\u0142owem &#8222;PHP&#8221; w ci\u0105gu znak\u00f3w &#8222;Witaj, \u015bwiat!&#8221;. <strong>Rozwi\u0105zanie:<\/strong><\/p>\n<p><code>$tekst = \"Witaj, \u015bwiat!\";<\/code><br \/>\n<code>$nowyTekst = str_replace(\"\u015bwiat\", \"PHP\", $tekst);<\/code><br \/>\n<code>echo $nowyTekst; \/\/ Wy\u015bwietli \"Witaj, PHP!\"<\/code><\/p>\n<p>Funkcje w PHP s\u0105 pot\u0119\u017cnym narz\u0119dziem, pozwalaj\u0105cym na efektywn\u0105 organizacj\u0119 kodu, unikanie powt\u00f3rze\u0144 oraz \u0142atwe zarz\u0105dzanie z\u0142o\u017cono\u015bci\u0105 projekt\u00f3w. Przez zrozumienie i wykorzystanie funkcji, parametr\u00f3w, zakres\u00f3w zmiennych oraz funkcji wbudowanych, studenci mog\u0105 znacz\u0105co poprawi\u0107 jako\u015b\u0107 i efektywno\u015b\u0107 swojego kodu.<\/p>\n<p>5. Przyk\u0142ady przydatnych wbudowanych funkcji w PHP<\/p>\n<p>PHP oferuje szerok\u0105 gam\u0119 funkcji wbudowanych, kt\u00f3re s\u0105 nieocenion\u0105 pomoc\u0105 w codziennej pracy programisty. Oto lista najbardziej przydatnych i najcz\u0119\u015bciej wykorzystywanych funkcji wbudowanych w PHP:<\/p>\n<ol>\n<li><strong>Manipulacja ci\u0105gami znak\u00f3w<\/strong>\n<ul>\n<li><code>strlen($string)<\/code> &#8211; Zwraca d\u0142ugo\u015b\u0107 ci\u0105gu znak\u00f3w.\n<ul>\n<li>echo strlen(&#8222;Witaj \u015bwiecie&#8221;); \/\/ Wy\u015bwietli 12<\/li>\n<\/ul>\n<\/li>\n<li><code>str_replace($search, $replace, $subject)<\/code> &#8211; Zast\u0119puje wszystkie wyst\u0105pienia ci\u0105gu szukanego ci\u0105giem zast\u0119puj\u0105cym.\n<ul>\n<li>echo str_replace(&#8222;\u015bwiat&#8221;, &#8222;PHP&#8221;, &#8222;Witaj \u015bwiecie&#8221;); \/\/ Wy\u015bwietli &#8222;Witaj PHP&#8221;<\/li>\n<\/ul>\n<\/li>\n<li><code>strpos($haystack, $needle)<\/code> &#8211; Znajduje pozycj\u0119 pierwszego wyst\u0105pienia podci\u0105gu w ci\u0105gu.\n<ul>\n<li>echo strpos(&#8222;Witaj \u015bwiecie&#8221;, &#8222;\u015bwiecie&#8221;); \/\/ Wy\u015bwietli 6<\/li>\n<\/ul>\n<\/li>\n<li><code>strtolower($string)<\/code> &#8211; Konwertuje wszystkie znaki w ci\u0105gu na ma\u0142e litery.\n<ul>\n<li>echo strtolower(&#8222;Witaj \u015aWIECIE&#8221;); \/\/ Wy\u015bwietli &#8222;witaj \u015bwiecie&#8221;<\/li>\n<\/ul>\n<\/li>\n<li><code>strtoupper($string)<\/code> &#8211; Konwertuje wszystkie znaki w ci\u0105gu na wielkie litery.\n<ul>\n<li>echo strtoupper(&#8222;witaj \u015bwiecie&#8221;); \/\/ Wy\u015bwietli &#8222;WITAJ \u015aWIECIE&#8221;<\/li>\n<\/ul>\n<\/li>\n<li><code>substr($string, $start, $length)<\/code> &#8211; Zwraca cz\u0119\u015b\u0107 ci\u0105gu.\n<ul>\n<li>echo substr(&#8222;Witaj \u015bwiecie&#8221;, 6, 7); \/\/ Wy\u015bwietli &#8222;\u015bwiecie&#8221;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li><strong>Manipulacja tablicami<\/strong>\n<ul>\n<li><code>array_merge($array1, $array2)<\/code> &#8211; Scala jedn\u0105 lub wi\u0119cej tablic.\n<ul>\n<li><code>print_r(array_merge([1, 2, 3], [4, 5, 6])); \/\/ Wy\u015bwietli Array ( [0] =&gt; 1 [1] =&gt; 2 [2] =&gt; 3 [3] =&gt; 4 [4] =&gt; 5 [5] =&gt; 6 )<\/code><\/li>\n<\/ul>\n<\/li>\n<li><code>array_pop(&amp;$array)<\/code> &#8211; Usuwa ostatni element tablicy.\n<ul>\n<li><code>$arr = [1, 2, 3];<\/code><br \/>\n<code>array_pop($arr);<\/code><br \/>\n<code>print_r($arr); \/\/ Wy\u015bwietli Array ( [0] =&gt; 1 [1] =&gt; 2 )<\/code><\/li>\n<\/ul>\n<\/li>\n<li><code>array_push(&amp;$array, $value1, $value2, ...)<\/code> &#8211; Dodaje jeden lub wi\u0119cej element\u00f3w na ko\u0144cu tablicy.\n<ul>\n<li><code>$arr = [1, 2];<\/code><br \/>\n<code>array_push($arr, 3, 4);<\/code><br \/>\n<code>print_r($arr); \/\/ Wy\u015bwietli Array ( [0] =&gt; 1 [1] =&gt; 2 [2] =&gt; 3 [3] =&gt; 4 )<\/code><\/li>\n<\/ul>\n<\/li>\n<li><code>array_shift(&amp;$array)<\/code> &#8211; Usuwa pierwszy element tablicy i zwraca go.\n<ul>\n<li><code>$arr = [1, 2, 3];<\/code><br \/>\n<code>array_shift($arr);<\/code><br \/>\n<code>print_r($arr); \/\/ Wy\u015bwietli Array ( [0] =&gt; 2 [1] =&gt; 3 )<\/code><\/li>\n<\/ul>\n<\/li>\n<li><code>array_unshift(&amp;$array, $value1, $value2, ...)<\/code> &#8211; Dodaje jeden lub wi\u0119cej element\u00f3w na pocz\u0105tku tablicy.\n<ul>\n<li><code>$arr = [2, 3];<\/code><br \/>\n<code>array_unshift($arr, 0, 1);<\/code><br \/>\n<code>print_r($arr); \/\/ Wy\u015bwietli Array ( [0] =&gt; 0 [1] =&gt; 1 [2] =&gt; 2 [3] =&gt; 3 )<\/code><\/li>\n<\/ul>\n<\/li>\n<li><code>in_array($needle, $haystack)<\/code> &#8211; Sprawdza, czy w tablicy znajduje si\u0119 dany element.\n<ul>\n<li><code>echo in_array(2, [1, 2, 3]); \/\/ Wy\u015bwietli 1 (true)<\/code><\/li>\n<\/ul>\n<\/li>\n<li><code>sort(&amp;$array)<\/code> &#8211; Sortuje tablic\u0119.\n<ul>\n<li><code>$arr = [3, 1, 2];<\/code><br \/>\n<code>sort($arr);<\/code><br \/>\n<code>print_r($arr); \/\/ Wy\u015bwietli Array ( [0] =&gt; 1 [1] =&gt; 2 [2] =&gt; 3 )<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li><strong>Obs\u0142uga plik\u00f3w<\/strong>\n<ul>\n<li><code>fopen($filename, $mode)<\/code> &#8211; Otwiera plik lub URL.\n<ul>\n<li><code>$file = fopen(\"test.txt\", \"w\");<\/code><br \/>\n<code>fwrite($file, \"Witaj \u015bwiecie\");<\/code><br \/>\n<code>fclose($file);<\/code><\/li>\n<\/ul>\n<\/li>\n<li><code>fclose($handle)<\/code> &#8211; Zamyka otwarty wska\u017anik pliku.\n<ul>\n<li><code>$file = fopen(\"przykladowy_plik.txt\", \"w\");<\/code><br \/>\n<code>fwrite($file, \"Witaj \u015bwiecie w PHP!\");<\/code><br \/>\n<code>fclose($file);<\/code><\/li>\n<\/ul>\n<\/li>\n<li><code>fwrite($handle, $string)<\/code> &#8211; Zapisuje ci\u0105g znak\u00f3w do pliku.\n<ul>\n<li><code>$file = fopen(\"przykladowy_plik.txt\", \"w\");<\/code><br \/>\n<code>fwrite($file, \"To jest test.\");<\/code><br \/>\n<code>fclose($file);<\/code><\/li>\n<\/ul>\n<\/li>\n<li><code>fread($handle, $length)<\/code> &#8211; Odczytuje plik do okre\u015blonej d\u0142ugo\u015bci.\n<ul>\n<li><code>$file = fopen(\"przykladowy_plik.txt\", \"r\");<\/code><br \/>\n<code>$content = fread($file, filesize(\"przykladowy_plik.txt\"));<\/code><br \/>\n<code>fclose($file);<\/code><code>echo $content;<\/code><\/li>\n<\/ul>\n<\/li>\n<li><code>file_get_contents($filename)<\/code> &#8211; Odczytuje ca\u0142y plik do ci\u0105gu.\n<ul>\n<li><code>file_put_contents(\"test.txt\", \"Witaj \u015bwiecie\");<\/code><br \/>\n<code>echo file_get_contents(\"test.txt\"); \/\/ Wy\u015bwietli \"Witaj \u015bwiecie\"<\/code><\/li>\n<\/ul>\n<\/li>\n<li><code>file_put_contents($filename, $data)<\/code> &#8211; Zapisuje ci\u0105g do pliku.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Obs\u0142uga czasu i daty<\/strong>\n<ul>\n<li><code>date($format, $timestamp)<\/code> &#8211; Formatuje dat\u0119\/czas.\n<ul>\n<li>echo date(&#8222;Y-m-d&#8221;); \/\/ Wy\u015bwietli bie\u017c\u0105c\u0105 dat\u0119 w formacie RRRR-MM-DD<\/li>\n<\/ul>\n<\/li>\n<li><code>time()<\/code> &#8211; Zwraca bie\u017c\u0105cy czas jako znacznik czasu Unix.\n<ul>\n<li>echo time(); \/\/ Wy\u015bwietli bie\u017c\u0105cy znacznik czasu Unix<br \/>\necho strtotime(&#8222;+1 day&#8221;, time()); \/\/ Wy\u015bwietli znacznik czasu Unix dla jutra<\/li>\n<\/ul>\n<\/li>\n<li><code>strtotime($time)<\/code> &#8211; Przekszta\u0142ca dowolny opis tekstowy daty\/czasu na znacznik czasu Unix.\n<ul>\n<li><code>echo strtotime(\"now\"), \"\\n\"; \/\/ Zwraca bie\u017c\u0105cy znacznik czasu Unix<\/code><br \/>\n<code>echo strtotime(\"10 September 2000\"), \"\\n\"; \/\/ Zwraca znacznik czasu Unix dla podanej daty<\/code><br \/>\n<code>echo strtotime(\"+1 day\"), \"\\n\"; \/\/ Zwraca znacznik czasu Unix dla dnia nast\u0119puj\u0105cego po bie\u017c\u0105cym dniu<\/code><br \/>\n<code>echo strtotime(\"+1 week\"), \"\\n\"; \/\/ Zwraca znacznik czasu Unix dla tygodnia nast\u0119puj\u0105cego po bie\u017c\u0105cym tygodniu<\/code><br \/>\n<code>echo strtotime(\"+1 week 2 days 4 hours 2 seconds\"), \"\\n\"; \/\/ Zwraca znacznik czasu Unix dla okre\u015blonego przesuni\u0119cia czasowego od teraz<\/code><br \/>\n<code>echo strtotime(\"next Thursday\"), \"\\n\"; \/\/ Zwraca znacznik czasu Unix dla najbli\u017cszego czwartku od dzisiaj<\/code><br \/>\n<code>echo strtotime(\"last Monday\"), \"\\n\"; \/\/ Zwraca znacznik czasu Unix dla ostatniego poniedzia\u0142ku przed dzisiaj<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li><strong>Funkcje matematyczne<\/strong>\n<ul>\n<li><code>rand($min, $max)<\/code> &#8211; Generuje losow\u0105 liczb\u0119.\n<ul>\n<li>echo rand(1, 10); \/\/ Wy\u015bwietli losow\u0105 liczb\u0119 mi\u0119dzy 1 a 10<\/li>\n<\/ul>\n<\/li>\n<li><code>round($val, $precision)<\/code> &#8211; Zaokr\u0105gla liczb\u0119 do okre\u015blonej precyzji.\n<ul>\n<li>echo round(3.14159, 2); \/\/ Wy\u015bwietli 3.14<\/li>\n<\/ul>\n<\/li>\n<li><code>ceil($value)<\/code> &#8211; Zaokr\u0105gla warto\u015bci w g\u00f3r\u0119.\n<ul>\n<li><code>echo ceil(4.3); \/\/ Wy\u015bwietli 5<\/code><br \/>\n<code>echo ceil(9.999); \/\/ Wy\u015bwietli 10<\/code><br \/>\n<code>echo ceil(-3.14); \/\/ Wy\u015bwietli -3<\/code><\/li>\n<\/ul>\n<\/li>\n<li><code>floor($value)<\/code> &#8211; Zaokr\u0105gla warto\u015bci w d\u00f3\u0142.\n<ul>\n<li><code><span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-title function_ invoke__\">floor<\/span>(<span class=\"hljs-number\">4.3<\/span>); <span class=\"hljs-comment\">\/\/ Wy\u015bwietli 4<\/span> <\/code><\/li>\n<li><code><span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-title function_ invoke__\">floor<\/span>(<span class=\"hljs-number\">9.999<\/span>); <span class=\"hljs-comment\">\/\/ Wy\u015bwietli 9<\/span> <\/code><\/li>\n<li><code><span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-title function_ invoke__\">floor<\/span>(-<span class=\"hljs-number\">3.14<\/span>); <span class=\"hljs-comment\">\/\/ Wy\u015bwietli -4<\/span><\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li><strong>Obs\u0142uga JSON<\/strong>\n<ul>\n<li><code>json_encode($value)<\/code> &#8211; Koduje warto\u015b\u0107 do formatu JSON.\n<ul>\n<li><code>$json = json_encode([\"imie\" =&gt; \"Jan\", \"wiek\" =&gt; 30]);<\/code><br \/>\n<code>print_r(json_decode($json, true)); \/\/ Wy\u015bwietli skojarzon\u0105 tablic\u0119<\/code><\/li>\n<\/ul>\n<\/li>\n<li><code>json_decode($json)<\/code> &#8211; Dekoduje ci\u0105g JSON.\n<ul>\n<li><code>$json = '{\"imie\": \"Jan\", \"wiek\": 30}';<\/code><br \/>\n<code>$decoded = json_decode($json);<\/code><code>\/\/ Dost\u0119p do w\u0142a\u015bciwo\u015bci obiektu<\/code><br \/>\n<code>echo $decoded-&gt;imie; \/\/ Wy\u015bwietli \"Jan\"<\/code><br \/>\n<code>echo $decoded-&gt;wiek; \/\/ Wy\u015bwietli 30<\/code><code>\/\/ Aby uzyska\u0107 tablic\u0119 asocjacyjn\u0105 zamiast obiektu, ustaw drugi argument na true<\/code><br \/>\n<code>$decodedArray = json_decode($json, true);<\/code><code>\/\/ Dost\u0119p do danych jako tablicy asocjacyjnej<\/code><br \/>\n<code>echo $decodedArray['imie']; \/\/ Wy\u015bwietli \"Jan\"<\/code><br \/>\n<code>echo $decodedArray['wiek']; \/\/ Wy\u015bwietli 30<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li><strong>Obs\u0142uga b\u0142\u0119d\u00f3w<\/strong>\n<ul>\n<li><code>error_reporting($level)<\/code> &#8211; Ustawia poziom raportowania b\u0142\u0119d\u00f3w.\n<ul>\n<li><code>\/\/ Wy\u0142\u0105cza raportowanie wszystkich b\u0142\u0119d\u00f3w<\/code><br \/>\n<code>error_reporting(0);<\/code><code>\/\/ Raportuje tylko b\u0142\u0119dy wykonania<\/code><br \/>\n<code>error_reporting(E_ERROR | E_WARNING | E_PARSE);<\/code><code>\/\/ Raportuje wszystkie b\u0142\u0119dy PHP (zalecane podczas rozwoju)<\/code><br \/>\n<code>error_reporting(E_ALL);<\/code>Funkcja <code>error_reporting<\/code> pozwala kontrolowa\u0107, kt\u00f3re b\u0142\u0119dy PHP s\u0105 wy\u015bwietlane. Mo\u017cna j\u0105 wykorzysta\u0107 do ukrycia ostrze\u017ce\u0144 i notatek podczas produkcji lub do pokazywania wszystkich b\u0142\u0119d\u00f3w podczas fazy rozwoju.<\/li>\n<\/ul>\n<\/li>\n<li><code>set_error_handler($callback)<\/code> &#8211; Ustawia funkcj\u0119 obs\u0142ugi b\u0142\u0119d\u00f3w u\u017cytkownika.\n<ul>\n<li><code>function mojObslugaBledow($errno, $errstr, $errfile, $errline) {<\/code><br \/>\n<code>echo \"&lt;b&gt;B\u0142\u0105d:&lt;\/b&gt; [$errno] $errstr&lt;br&gt;\";<\/code><br \/>\n<code>echo \" B\u0142\u0105d w linii $errline w pliku $errfile&lt;br&gt;\";<\/code><br \/>\n<code>echo \"PHP \" . PHP_VERSION . \" (\" . PHP_OS . \")&lt;br&gt;\";<\/code><br \/>\n<code>die();<\/code><br \/>\n<code>}<\/code><code>\/\/ Ustawienie w\u0142asnej funkcji do obs\u0142ugi b\u0142\u0119d\u00f3w<\/code><br \/>\n<code>set_error_handler(\"mojObslugaBledow\");<\/code><code>\/\/ Wygenerowanie b\u0142\u0119du (dla testu)<\/code><br \/>\n<code>echo($test);<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>U\u017cywaj\u0105c funkcji <code>set_error_handler<\/code>, mo\u017cna zdefiniowa\u0107 w\u0142asn\u0105 funkcj\u0119, kt\u00f3ra zostanie wywo\u0142ana zamiast standardowego mechanizmu obs\u0142ugi b\u0142\u0119d\u00f3w PHP. Pozwala to na niestandardowe obs\u0142ugiwanie b\u0142\u0119d\u00f3w, na przyk\u0142ad logowanie b\u0142\u0119d\u00f3w do pliku zamiast wy\u015bwietlania ich u\u017cytkownikowi lub wysy\u0142anie powiadomie\u0144 e-mail w przypadku krytycznych b\u0142\u0119d\u00f3w.<\/p>\n<p>Te dwie funkcje, s\u0105 kluczowe dla zaawansowanej obs\u0142ugi b\u0142\u0119d\u00f3w w aplikacjach PHP, pozwalaj\u0105c na wi\u0119ksz\u0105 kontrol\u0119 nad tym, jak b\u0142\u0119dy s\u0105 raportowane i obs\u0142ugiwane.<\/p>\n<h2>Podsumowanie<\/h2>\n<p>To tylko niekt\u00f3re z funkcji wbudowanych w PHP, kt\u00f3re czyni\u0105 ten j\u0119zyk tak pot\u0119\u017cnym narz\u0119dziem dla programist\u00f3w. Ka\u017cda z nich ma swoje specyficzne zastosowania i mo\u017ce znacznie przyspieszy\u0107 oraz u\u0142atwi\u0107 proces tworzenia aplikacji webowych.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Oto trzecia cz\u0119\u015b\u0107 naszej podr\u00f3\u017cy z PHP! Tym razem skupimy si\u0119 na jednym z kluczowych element\u00f3w, jakim s\u0105 funkcje.<\/p>\n","protected":false},"author":1,"featured_media":730,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[244],"tags":[67],"class_list":["post-736","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php","tag-php"],"_links":{"self":[{"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/posts\/736","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/comments?post=736"}],"version-history":[{"count":0,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/posts\/736\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/media\/730"}],"wp:attachment":[{"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/media?parent=736"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/categories?post=736"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/tags?post=736"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}