Własne funkcje
14 July 2008
Comments
Zapewne spotkałeś się już z funkcjami PHP. Funkcje wykonują określone operacje na podanych parametrach. W PHP można też definiować własne funkcje. Własne funkcje tworzy się po to by nie przepisywać wielokrotnie tego samego kodu czy ułatwić tworzenie bardziej skomplikowanych skryptów. Zaczniemy od podstaw. Oto przykład prostej funkcji:
<?php
function prosta_funkcja()
{
echo 'to jest prosta funkcja';
}
// to wywoła i wyświetli wynik działania funkcji
prosta_funkcja();
Ta funkcja drukuje napis w miejscu gdzie zostanie wywołana. Jeżeli chcielibyśmy przypisać wynik jej działania (a zazwyczaj tego chcemy) musimy użyć dyrektywy return:
<?php
function prosta_funkcja()
{
return 'to jest prosta funkcja';
}
// to wywoła i wyświetli wynik działania funkcji
$x = prosta_funkcja();
echo '<hr />';
echo $x;
Teraz wróćmy do wartości jakie możemy przekazywać funkcji. Przy definiowaniu funkcji możemy podać zmienne jakie będą przekazane do niej przy jej wywołaniu:
<?php
function prosta_funkcja2($liczba1, $liczba2)
{
$zmienna = $liczba1 * $liczba2;
return $zmienna;
}
// to wywoła i wyświetli wynik działania funkcji
echo prosta_funkcja2('4', '4');
echo '<br />';
$x = prosta_funkcja2('2', '2');
echo 'wynik działania 2 wywołania to: '.$x;
Oto bardziej praktyczny przykład:
<?php
function bbcode($text)
{
$text = str_replace('[b]', '<B>', $text);
$text = str_replace('[/b]', '</B>', $text);
$text = str_replace('[i]', '<i>', $text);
$text = str_replace('[/i]', '</i>', $text);
$text = str_replace('zero', 'kononowicz', $text);
return $text;
}
$zmienna = 'blablabla [b]blaa[/b] oraz [i]blaaa[/i]';
$zmienna = bbcode($zmienna);
echo $zmienna;
Dostęp do zmiennych w funkcji i poza nią
<?php
$foo = 'cześć, jestem zmienna foo';
function glupia_funkcja()
{
echo 'Powitanie: '.$foo;
}
<?php
$foo = 'cześć, jestem zmienna foo';
function glupia_funkcja()
{
global $foo, $x;
echo 'Powitanie: '.$foo;
$x = 5;
}
glupia_funkcja();
echo $x;
Funkcje a optymalizacja
Duża liczba funkcji zadeklarowanych przez użytkownika spowalnia skrypt, gdyż wszystkie funkcje muszą być "skompilowane". Gdy tworzysz funkcje, twórz je mądrze i oszczędnie:- pomyśl czy za pomocą kilku dodatkowych parametrów przesłanych do funkcji nie da się zrobić jednej funkcji z kilku.
- Nie twórz funkcji "nakładkowych" (które zwracają działanie istniejącej funkcji PHP)
- Jeżeli używasz dużej ilości funkcji pogrupuj je w plikach i dołączaj (include) tylko te, które są potrzebne w danym skrypcie
RkBlog
Comment article