Website Development Prices

Search Blog

Wednesday, March 30, 2016

Prosledjivanje argumenata po referenci (Passing arguments by reference)

Kada se funkciji prosledjuje argument, podrazumevano se prosledjuje po vrednosti. To znaci da se u funkciju salje kopija podatka a ne sam podatak. 

Ako zelite da promenite originalnu vrednost koju ste prosledili u funkciju, na primer, ako zelite stringu koji je usao u funkciju dodate neki tekst:

Primer:

<?php

$string = "Ja volim ";

dodaj_tekst($string);
echo $string;

function dodaj_tekst($tekst)
{
$tekst .= "motore.";
}
?> 

Rezultat:


Ja volim

Ako ispred argumenta koji saljete u funkciju dodate znak &, PHP ce argument proslediti po referenci.

Nastavak primer:

$string = "Ja volim ";

dodaj_tekst($string);
echo $string;

function dodaj_tekst(&$tekst)
{
$tekst .= "motore.";
}

?>

Rezultat:

Ja volim motore.

Objasnjenje: sada je u funkciju dodaj_tekst prosledjena referenca na originalan podatak ($string), sto znaci da u funkciji mozete da pristupite originalnom podatku. 

When you pass argument to the function, by default is passed by value. This means that the function sends a copy of the data rather than the data itself.

If you want to change the original value that you pass to the function, for example, if you want, to a string that entered in the function, add some text:

Example:

<?php

$string = "I love ";

add_text($string);
echo $string;

function add_text($text)
{
$text .= "motorcycles.";
}

?>

Result:

I love

If in the front of the argument that you are sending to the function. add ampersand &, PHP will pass the argument by reference.

Continued example:

<?php

$string = "I love ";

add_text($string);
echo $string;

function add_text(&$text)
{
$text .= "motorcycles.";

}

?>

Result:

I love motorcycles.


Explanation: now is the function add_text passed a reference to the original data ($string), which means that in the function you can access the original data.

No comments:

Post a Comment

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