Lokalne promenljive u funkcijama se resetuju na svoje podrazumevane vrednosti uvek kada se funkcija pozove.
Primer: ako imate funkcjiu za brojanje, koja svakog puta kada je pozovete povecava vrednost promenljive $brojac za 1.
<?php
echo "Trenutni broj: ", broj_zapisa(), "<br />";
echo "Trenutni broj: ", broj_zapisa(), "<br />";
echo "Trenutni broj: ", broj_zapisa(), "<br />";
echo "Trenutni broj: ", broj_zapisa(), "<br />";
function broj_zapisa()
{
$brojac = 0;
$brojac++;
return $brojac;
}
?>
Rezultat:
Trenutni broj: 1
Trenutni broj: 1
Trenutni broj: 1
Trenutni broj: 1
Objasnjenje: promenljiva $brojac, lokalna promenjiva, uvek kada se funkcije pozove dobija vrednost 0. Posle toga se ta vrednost povecava na 1, tako da je vrednost uvek 1.
Da bi ovo resili, deklarisite promenljivu $brojac kao staticku. To znaci da ce promenljiva $brojac zadrzati vrednost izmedju poziva funkcije.
<?php
echo "Trenutni broj: ", broj_zapisa(), "<br />";
echo "Trenutni broj: ", broj_zapisa(), "<br />";
echo "Trenutni broj: ", broj_zapisa(), "<br />";
echo "Trenutni broj: ", broj_zapisa(), "<br />";
function broj_zapisa()
{
static $brojac = 0;
$brojac++;
return $brojac;
}
?>
Rezultat:
Trenutni broj: 1
Trenutni broj: 2
Trenutni broj: 3
Trenutni broj: 4
Local variables in functions are reset to their default values whenever the function is called.
Example: if you have funcrion for counting, that every time you call it increases the value of variable $counter for 1.
<?php
echo "Current number: ", count_number(), "<br />";
echo "Current number: ", count_number(), "<br />";
echo "Current number: ", count_number(), "<br />";
echo "Current number: ", count_number(), "<br />";
function count_number()
{
$counter = 0;
$counter++;
return $counter;
}
?>
Result:
Current number: 1
Current number: 1
Current number: 1
Current number: 1
Explanation: variable $counter, local variable, whenever a function is called, receives value 0. After that, this value increases to 1, so that the value is always 1
To solve this, declare variable $counter as static. This means that the variable $counter will retain value between function calls.
<?php
echo "Current number: ", count_number(), "<br />";
echo "Current number: ", count_number(), "<br />";
echo "Current number: ", count_number(), "<br />";
echo "Current number: ", count_number(), "<br />";
function count_number()
{
static $counter = 0;
$counter++;
return $counter;
}
?>
Result:
Current number: 1
Current number: 2
Current number: 3
Current number: 4
Primer: ako imate funkcjiu za brojanje, koja svakog puta kada je pozovete povecava vrednost promenljive $brojac za 1.
<?php
echo "Trenutni broj: ", broj_zapisa(), "<br />";
echo "Trenutni broj: ", broj_zapisa(), "<br />";
echo "Trenutni broj: ", broj_zapisa(), "<br />";
echo "Trenutni broj: ", broj_zapisa(), "<br />";
function broj_zapisa()
{
$brojac = 0;
$brojac++;
return $brojac;
}
?>
Rezultat:
Trenutni broj: 1
Trenutni broj: 1
Trenutni broj: 1
Trenutni broj: 1
Objasnjenje: promenljiva $brojac, lokalna promenjiva, uvek kada se funkcije pozove dobija vrednost 0. Posle toga se ta vrednost povecava na 1, tako da je vrednost uvek 1.
Da bi ovo resili, deklarisite promenljivu $brojac kao staticku. To znaci da ce promenljiva $brojac zadrzati vrednost izmedju poziva funkcije.
<?php
echo "Trenutni broj: ", broj_zapisa(), "<br />";
echo "Trenutni broj: ", broj_zapisa(), "<br />";
echo "Trenutni broj: ", broj_zapisa(), "<br />";
echo "Trenutni broj: ", broj_zapisa(), "<br />";
function broj_zapisa()
{
static $brojac = 0;
$brojac++;
return $brojac;
}
?>
Rezultat:
Trenutni broj: 1
Trenutni broj: 2
Trenutni broj: 3
Trenutni broj: 4
Local variables in functions are reset to their default values whenever the function is called.
Example: if you have funcrion for counting, that every time you call it increases the value of variable $counter for 1.
<?php
echo "Current number: ", count_number(), "<br />";
echo "Current number: ", count_number(), "<br />";
echo "Current number: ", count_number(), "<br />";
echo "Current number: ", count_number(), "<br />";
function count_number()
{
$counter = 0;
$counter++;
return $counter;
}
?>
Result:
Current number: 1
Current number: 1
Current number: 1
Current number: 1
Explanation: variable $counter, local variable, whenever a function is called, receives value 0. After that, this value increases to 1, so that the value is always 1
To solve this, declare variable $counter as static. This means that the variable $counter will retain value between function calls.
<?php
echo "Current number: ", count_number(), "<br />";
echo "Current number: ", count_number(), "<br />";
echo "Current number: ", count_number(), "<br />";
echo "Current number: ", count_number(), "<br />";
function count_number()
{
static $counter = 0;
$counter++;
return $counter;
}
?>
Result:
Current number: 1
Current number: 2
Current number: 3
Current number: 4
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.