Consider the following code snippet:
$a = 10; $b = 10; var_dump($a == $b); // bool(true) var_dump($a === $b); // bool(true) $a = 20; var_dump($a); // integer(20) $a = $a + 30; var_dump($a); // integer(50);
Although $a
and $b
are different variables stored in different memory locations, when compared, they're the same. They hold the same value, so we consider them equal. You can change the value of $a
from 10
to 20
at any time that you want, making the new value 20
and eliminating the 10
. You can replace integer values as much as you want without consideration of the previous value because you're not modifying it; you're just replacing it. If you apply any operation — such as addition (That is. $a + $b
) — to these variables, you get another new value that can be assigned to another variable or a previously defined one. When you pass $a
to another function, except when explicitly passed by reference, you're passing a value. It doesn't matter if $a
gets modified within...