70404 skanuj0083 (35)

70404 skanuj0083 (35)



Rozdział 3. ♦ Instrukcje sterujące i funkcje

Listing 3.27. Zasiąg zmiennych globalnych

<html>

<head>

<title>Przykladowa strona</title> </head>

<body>

<?php $a - 1:

function funkcjaO

{

echo("Wartość a = $a <br>");

}

funkcjaO;

echo("Wartość a = $a <br>"):

?>

</body>

</htm1>

Wykonanie tego skryptu wywoła efekt widoczny na rysunku 3.14 (pojawienie się informacji o niezdefiniowanej zmiennej jest zależne od konfiguracji środowiska PHP). Co się zatem stało? Zmienna a została zdefiniowana na początku skryptu i jest zmienną globalną. W funkcji funkcja próbujemy wyświetlić wartość tej zmiennej. Niestety zgodnie z tym, co zostało napisane powyżej, funkcje nie mają bezpośredniego dostępu do zmiennych globalnych, dlatego też instrukcja echo znajdująca się w funkcji nie zadziałała poprawnie. Z kolei druga instrukcja echo, ponieważ znajduje się poza funkcją i ma dostęp do zmiennych globalnych, działa zgodnie z oczekiwaniami.

Rysunek 3.14.

Próba dostępu

Pik Edycja ®dok Przejdź JakJadkl Narzędzia F

'orot

do zmiennej globalnej zakończyła się

• g> Q |L1 uh

/hdex.php

d ©

•< Roz,

■oczni) przygód... r I- Aktualności

miepowodzeniem

Notice: Undefined variable: a in E:\I\index.php on linę 10 Wartość a =

Wartość a = 1

Czy istnieje zatem możliwość dostępu do zmiennych globalnych wewnątrz funkcji? Oczywiście tak. Możemy to zrobić na dwa sposoby. Pierwszy to odwołanie się do zmiennej superglobalnej GLOBALS, drugi to użycie słowa kluczowego globals. Zobaczmy najpierw, jak będzie to wyglądało w drugim wymienionym przypadku. Odpowiedni kod został przedstawiony na listingu 3.28. Efekt jego działania jest natomiast widoczny na rysunku 3.15. Użycie wewnątrz funkcji instrukcji gl obal wogólnej postaci: global nazwa_zmiennej:

umożliwia wykorzystanie zmiennej globalnej wewnątrz funkcji. Jeśli mamy więcej zmiennych globalnych, które chcemy wykorzystać wewnątrz funkcji, możemy użyć konstrukcji:

global zmiennal. zmienna2. zmienna3:


Wyszukiwarka

Podobne podstrony:
60048 skanuj0081 (35) Rozdział 3. ♦ Instrukcje sterujące i funkcje 93 <?php function dodaj(Sx. Sy
skanuj0060 (57) Rozdział 3. ♦ Instrukcje sterujące i funkcje 73 można go przedstawić za pomocą instr
skanuj0062 (56) Rozdział 3. ♦ Instrukcje sterujące i funkcje 75 Szczególną uwagę należy zwrócić na i

więcej podobnych podstron