skanuj0086 (34)

skanuj0086 (34)



PHP i MySQL dla każdego

Argumenty funkcji raz jeszcze

Sposoby przekazywania argumentów

Argumenty funkcji mogą być przekazywane na dwa różne sposoby. We wszystkich dotychczas prezentowanych przykładach było to tak zwane przekazywanie przez wartość. Oznacza to, że funkcja tak naprawdę otrzymuje kopię argumentu. Ponieważ w przykładach przekazywaliśmy zawsze jawną wartość (np. 5, 10), nie miało to żadnego znaczenia. Spójrzmy jednak na przykład widoczny na listingu 3.31.

Listing 3.31. Nieprawidłowe przekazanie argumentu

<html>

<head>

<t1tle>Przykładowa strona</tit1e>

</head>

<body>

<?php

function dodajJeden(Sliczba)

{

Sliczba = Sliczba + 1:

}

Sliczba - 1;

echoOPrzed wywołaniem funkcji liczba - Sliczba <br>"): dodajJeden(Sliczba):

echoCPo wywołaniu funkcji liczba - Sliczba <br>"):

?>

</body>

</html>

Tym razem w skrypcie zdefiniowana została funkcja doda jJeden. Założeniem jest, że będzie ona zwiększała przekazaną jej wartość o jeden. W dalszej części skryptu zdefiniowana została zmienna liczba, której przypisano wartość 1. Następnie została wywołana funkcja dodajJeden. Moglibyśmy się spodziewać, że po wywołaniu tej funkcji zmienna liczba będzie miała wartość 2(1 + 1= 2). Tak jednak nie jest. Dzięki instrukcjom echo widzimy wyraźnie (rysunek 3.17), że wartość zmiennej liczba wcale się nie zmieniła. Dlaczego? Właśnie dlatego, że argument funkcji doda jJeden jest przekazywany przez wartość. Oznacza to, że funkcja otrzymuje kopię zmiennej liczba i wszelkie operacje wykonuje na tej kopii! Stąd nie mógł się zmienić stan zmiennej poza funkcją.

0k Edycja Widok Przejdź Zakładki Narzędzia Pomoc

Q) @1 I Li http://tocahostrndex.php ^ Rozpocznij przygód... Aktualności


Rysunek 3.17.

Po wywołaniu funkcji wartość zmiennej nie uległa zmianie

Przed wywołaniem funkcji liczba = 1 Po wywołaniu funkcji liczba = 1


Wyszukiwarka

Podobne podstrony:
30979 skanuj0419 436 PHP i MySQL dla każdego Funkcja makeDBConnection służy do nawiązywania połączen
skanuj0112 (20) 124 PHP i MySQL dla każdego Funkcja zwraca wartość określającą liczbę elementów w po
skanuj0163 (9) 174 PHP i MySQL dla każdego Listing 6.12. Wykorzystanie funkcji strtok <?php $str

więcej podobnych podstron