Hi guys,
Sorry di ko kasi ma-gets yung reference symbol sa PHP. Nahihirapan akong intindihin.
Sana ma-explain nyo sakin in Filipino at in Layman's term. Medyo di nagwo-work brain ko ngayon hahahaha.
Thank you.
Ito na yung pinaka-basic explanation na nakita ko for an online answer.
Passing a value by reference
Take this 2 examples
Code:
<?php
$x = 5;
// passing a variable BY VALUE
function changeValue($r){
$r = $r * 3;
return $r;
}
echo changeValue($x) . ' - ' . $x;
?>
Result: 15 - 5
Code:
<?php
$x = 5;
// passing a variable BY REFERENCE
function changeValue(&$r){
$r = $r * 3;
return $r;
}
echo changeValue($x) . ' - ' . $x;
?>
Result: 15 - 15
Explanation: By default, any variable inside a function is just a local variable. Also, any variable passed on to a function is only good for that function and that specific iteration. Any operations na daanan ng variable na iyon, ay hanggang doon lang ang effect, at ang original variable na nasa labas ng function ay unaffected.
Whereas, sa mga variables passed on to a function BY REFERENCE, ay affected din ang original variable na nasa labas.
Based dun sa sample codes, ang original value natin ay $x na may value na 5.
Sa first example, iyan yung usual natin ginagawa, pinapasa ang value ng isang variable sa loob ng function.
Sa second, ang ipinapasa natin sa loob ng function ay yung mismong variable.
Same lang ang operation na nasa loob ng function, get the variable, multiply it by 3, then return the value for output.
Sa first example, yung value ng variable natin (5), multiplied by 3, ang sagot ay 15. Kaya ang result ay: 15 - 5. Unaffected ang value ng original variable $x, 5 pa din.
Sa second, yung mismong variable $x (5) ang ipinapasa natin, multiplied by 3, ang sagot ay 15. Since ang nakalagay sa function ay $r = $r * 3, at ang $r refers to the original variable $x, ang magiging bagong value ng $x ay 15. Kaya ang result ay 15 - 15. Affected ang original value ng $x.