pozycjonowanie Dodawarka do katalogów katalogowanie
Krótko po wydaniu PHP 3, w zimie 1998 Zeev Suraski oraz Andi Gutmans jeszcze raz zabrali się za przepisywanie kodu źródłowego PHP, korzystając z doświadczeń nabytych przy pracach nad poprzednią wersją. Za główne cele obrali poprawienie modułowości oraz wydajności złożonych aplikacji. Choć dotychczasowa wersja potrafiła sobie z nimi poradzić, nie była jednak stworzona do tego celu i przegrywała przez to z innymi rozwiązaniami.


artykuły ekologiczne dla dzieci
Bezpieczne zabawki dla najmłodszych
Ubranka z naturalnych materiałów
www.ekodzieci.pl
wholesale leather handbag
Bags include magnetic press stud closure
The Visconti messenger bag is perfect
www.viscontibags.co.uk
nieruchomości śląsk
Ogromna ilość mieszkań na sprzedaż
Domki jednorodzinne w dobrej lokalizacji
www.nieruchomosci-spektrum.pl
teflon
Tworzywa sztuczne odporne na ścieranie
Elementy konstrukcyjne z tworzyw
www.syltech.pl


Generator bannerów
Zrób sobie banner szybko i za darmo
Prosty sposób na tworzenie bannerów
www.reklama-internetowa.com/banner/
GPS
Navigation GSP, system mobile and phone
Soft from gps, soft phone gps
www.pl-gps.com


24 listopada 2005r. ukazała się wersja PHP 5.1, w której pojawił się z dawna oczekiwany, wbudowany sterownik baz danych, oraz dodano możliwość wymuszenia tablicy jako typu parametru funkcji – jeśli funkcja korzystająca z tej możliwości otrzyma w takim parametrze zmienną innego typu, interpreter PHP zgłosi błąd krytyczny.

Rozdział 17. Funkcje

Spis treści
Funkcje zdefiniowane przez użytkownika
Argumenty funkcji
Zwracane wartości
Zmienne funkcje
Wewnętrzne (wbudowane) funkcje

Funkcje zdefiniowane przez użytkownika

Funkcja może być zdefiniowana używając składni takiej jak poniższa:

Przykład 17-1. Pseudo-kod ilustrujący zastosowanie funkcji

<?php
function foo ($arg_1, $arg_2, /* ..., */ $arg_n)
{
    echo
"Przykładowa funkcja.\n";
    return
$retval;
}
?>

Dowolny poprawny kod PHP może się pojawić wewnątrz funkcji, także definicje innych funkcji i klas.

Nazwy funkcji podlegają takim samym ograniczeniom jak wszystkie inne etykiety w PHP. Poprawna nazwa funkcji zaczyna się od litery lub podkreślenia, po których następuje dowolna liczba liter, liczb lub podkreśleń. Powyższa zasada w postaci wyrażenia regularnego przedstawia się następująco: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*.

W PHP 3, funkcje muszą być zdefiniowane przed odwołaniem do nich. W PHP 4 nie ma takiego wymagania. Wyjątkiem jest warunkowe definiowanie funkcji, tak jak pokazano to w dwóch przykładach zamieszczonych poniżej.

Kiedy funkcja jest definiowana w postaci warunkowej, tak jak to przedstawiono na dwóch poniższych przykładach, jej definicja musi następować przed jej wywołaniem.

Przykład 17-2. Funkcje warunkowe

<?php

$makefoo
= true;

/* Nie można wywołać foo() z tego miejsca,
   ponieważ funkcja ta jeszcze nie istnieje.
   Można natomiast wywołać bar() */

bar();

if (
$makefoo) {
  function
foo()
  {
    echo
"Nie istnieję dopóki wykonanie programu nie dojdzie do tego miejsca.\n";
  }
}

/* W tym momencie można spokojnie wywołać foo()
   ponieważ $makefoo ma wartość true */

if ($makefoo) foo();

function
bar()
{
  echo
"Istnieję od samego początku działania programu.\n";
}

?>

Przykład 17-3. Funkcje wewnątrz funkcji

<?php
function foo()
{
  function
bar()
  {
    echo
"Nie istnieję dopóki foo() nie zostanie wywołana.\n";
  }
}

/* Nie można wywołać bar()
   ponieważ nie istnieje. */

foo();

/* Teraz można wywołać bar(),
   ponieważ wywołanie foo() utworzyło
   tą funkcję. */

bar();

?>

Wszystkie funkcje i klasy w PHP mają zasięg globalny - można je wywołać spoza ciała funkcji, nawet jeśli zostały w niej zdefiniowane, i vice versa.

PHP nie obsługuje przeciążania funkcji. Nie jest także możliwa od-definiowanie lub przedefiniowanie wcześniej zadeklarowanych funkcji.

Notatka: W nazwach funkcji nie jest istotna wielkość znaków, jednakże dobrze jest wywoływać funkcje tak, jak zostały zdeklarowane.

PHP 3 nie obsługuje funkcji o zmiennej liczbie argumentów, ale obsługuje domyślne argumenty (zobacz rozdzial Wartości domyślne argumentów aby uzyskać więcej informacji). Od wersji PHP 4 obsługiwane są jedne i drugie: zobacz Listy argumentów o zmiennej długości i opisy funkcji func_num_args(), func_get_arg(), i func_get_args() aby uzyskać więcej informacji.

W PHP możliwe jest rekurencyjne wywoływanie funkcji. Należy jednak unikać rekurencyjnych wywołań funkcji lub metod o głębokości większej niż 100-200 poziomów, gdyż może to zniszczyć stos i spowodować przerwanie działania skryptu.

Przykład 17-4. Funkcje rekurencyjne

<?php
function rekurencja($a)
{
    if (
$a < 20) {
        echo
"$a\n";
        
rekurencja($a + 1);
    }
}
?>