Rozdział 3. ♦ Instrukcje sterujące i funkcje
Czy istnieje zatem sposób, aby funkcja mogła wykonywać operacje na właściwej zmiennej, a nie na kopii? Oczywiście tak! Argument funkcji musi zostać przekazany przez referencję (ang. reference, inaczej odniesienie). Aby to osiągnąć, należy przed nazwą parametru dodać znak & (ang. ampersand). Ilustruje to skrypt widoczny na listingu 3.32. Jak można dostrzec na rysunku 3.18, tym razem zmienna liczba została poprawnie zwiększona o jeden.
Listing 3.32. Przekazywanie wartości przez referencją
<html>
<head>
<title>Przykladowa strona</title>
</head>
<body>
<?php
function dodajJedenf&Sliczba)
Sliczba = Sliczba + 1:
Sliczba = 1:
echoCPrzed wywołaniem funkcji liczba - Sliczba <br>“): dodajJeden(Sliczba):
echoCPo wywołaniu funkcji liczba - Sliczba <br>"):
?>
</body>
</html>
Pik Edycja Widok Przejiż Zakładki Narzędzia Pomoc
:,P ' Cj> ' £§? 0} ] L. iittpi//localhostfmdex.php
^ Rozpocznijprzygod... . J Aktualności
Rysunek 3.18.
Poprawne działanie funkcji dodajJeden
Przed wywołaniem funkcji liczba = 1 Po wywołaniu funkcji liczba — 2
Argumenty przekazywane funkcji mogą mieć wartości domyślne. W takiej sytuacji, jeżeli w wywołaniu funkcji nie zostaną podane wartości tych argumentów, zostaną przyjęte wartości zdefiniowane wcześniej. Schematycznie wygląda to następująco:
function nazwa_funkcji (.Sargmentl = wartość. $argument2 - wartość2.....
fargmentn = wartośćn)
{
/ / treść funkcji
Zobaczmy to na przykładzie. Napiszemy funkcję dodaj, która będzie przyjmowała dwa argumenty. Pierwszym argumentem będzie zmienna, której wartość ma zostać zwiększona. Ten argument będzie przekazywany przez referencję. Drugim argumentem będzie