Website Development Prices

Search Blog

Wednesday, May 4, 2016

Upotreba globalnih podataka u funkcijama (Using global data in functions)

U prethodnom clanku (primer 3) videli smo da, promenljive unutar funkcije imaju svoj domen i ne mesaju se sa promenljivama izvan funkcije.

Sta uraditi ako unutar funkcije zelite da pristupite vrednosti definisanoj na nivou koda tj. globalnoj promenljivoj?

Primer: ako na nivou koda zadate da je vrednost za $vrednost 3, mozete u funkciji probati da ovoj vrednosti pristupite ovako:

$vrednost = 3;
function lokalni_domen()
{
echo "\$vrednost = ", $vrednost, "<br />";
}

Objasnjenje: ovo nece raditi posto PHP zeli da  spreci slucajan konflikt izmedju globalnih i lokalnih promenljiva.


Da biste unutar funkcije pristupili vrednosti definisanoj na nivou koda tj. globalnoj promenljivoj, morate to eksplicitno da navedete. Jedan od nacina je pomocu kljucne reci global

Primer 2: 

<?php

$vrednost = 3;
echo "U kodu, \$vrednost = ", $vrednost, "<br />";

lokalni_domen();
globalni_domen();
echo "U kodu opet, \$vrednost jos uvek je ", $vrednost, "<br />";

function lokalni_domen()
{
$vrednost = 130;
echo "U funkciji, \$vrednost je ", $vrednost, "<br />";
}

function globalni_domen()
{
global $vrednost;
echo "Upotrebom globalnog domena, \$vrednost je ", $vrednost, "<br />";

}

?>

Rezultat:

U kodu, $vrednost = 3
U funkciji, $vrednost je 130
Upotrebom globalnog domena, $vrednost je 3
U kodu opet, $vrednost jos uvek je 3


Objasnjenje: nakon sto se naveli da zelite da pristupite globalnoj promenljivoj $vrednost, PHP vam daje tu vrednost.

Drugi nacin da pristupite globalnim podacima je pomocu specijalnog niza koji postoji u PHP-u a to je $GLOBALS.

Primer 3:

function globalni_domen()
{
echo "Upotrebom globalnog domena, \$vrednost je ", $GLOBALS["vrednost"], "<br />";

}

In the previous article (example 3) we saw that, variables inside functions have their own scope and they are not mixed with variables outside of functions.

What to do if inside a function you want to access the values defined at the level of code ie. to a global variable?

Example: if on the level of code, you set that the value of $value is 3, in function you can try to access this value as follows:

$value = 3;
function local_scope()
{
echo "\$value = ", $value, "<br />";

}

Explanation: this will not work because PHP wants to prevent accidental conflict between global and local variables.

In the functions to access the value defined at the level of code ie. to  a global variable, you must explicitly specify it. One way is by keyword global.

Example 2:

<?php

$value = 3;
echo "In code, \$value = ", $value, "<br />";

local_scope();
global_scope();
echo "In code again, \$value is still ", $value, "<br />";

function local_scope()
{
$value = 130;
echo "In function, \$value is ", $value, "<br />";
}

function global_scope()
{
global $value;
echo "Using global scope, \$value is ", $value, "<br />";

}

?>

Result:

In code, $value = 3
In function, $value is 130
Using global scope, $value is 3
In code again, $value is still 3


Explanation: after you said that you want to access the global variable $value, PHP gives you that value.

Second way to access the global data is by special array that exists in PHP and it is $GLOBALS.

Example 3:

function global_scope()
{
echo "Using global scope, \$value = ", $GLOBALS["value"], "<br />";

}

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.