Skip to content
Advertisement

difference between call by value and call by reference in php and also $$ means?

(1) I want to know what is the difference between call by value and call by reference in php. PHP works on call by value or call by reference?

(2) And also i want to know that do you mean by $$ sign in php

For example:-

$a = 'name';
$$a = "Paul";
echo $name; 

output is Paul

As above example what do u mean by $$ on PHP.

Advertisement

Answer

$$a = b; in PHP means “take the value of $a, and set the variable whose name is that value to equal b“.

In other words:

$foo = "bar";
$$foo = "baz";
echo $bar; // outputs 'baz'

But yeah, take a look at the PHP symbol reference.

As for call by value/reference – the primary difference between the two is whether or not you’re able to modify the original items that were used to call the function. See:

function increment_value($y) {
    $y++;
    echo $y;
}

function increment_reference(&$y) {
    $y++;
    echo $y;
}

$x = 1;
increment_value($x); // prints '2'
echo $x; // prints '1'
increment_reference($x); // prints '2'
echo $x; // prints '2'

Notice how the value of $x isn’t changed by increment_value(), but is changed by increment_reference().

As demonstrated here, whether call-by-value or call-by-reference is used depends on the definition of the function being called; the default when declaring your own functions is call-by-value (but you can specify call-by-reference via the & sigil).

User contributions licensed under: CC BY-SA
7 People found this is helpful
Advertisement