I was reading PHP manual link for OOPs concept and came across few examples which I was not able to understand.
a) Can someone please explain whether the objects are getting passed by value or reference?
b) What is reference, pointer and identifier and what is difference between them?
Example 1:
class A {
public $foo = 1;
}
class B {
public function foo(A $bar)
{
$bar->foo = 42;
}
public function bar(A $bar)
{
$bar = new A;
}
}
$f = new A;
$g = new B;
echo $f->foo . "n";
$g->foo($f);
echo $f->foo . "n";
$g->bar($f);
echo $f->foo . "n";
Expected Output:
1
42
1
Returned Output:
1
42
42
Example 2:
class A
{
public $v = 1;
}
function change($obj)
{
$obj->v = 2;
}
function makezero($obj)
{
$obj = 0;
}
$a = new A();
change($a);
print_r($a);
//Expected: A Object ( [v] => 2 )
//Returned: A Object ( [v] => 2 )
makezero($a);
print_r($a);
//Expected: 0
//Returned: A Object ( [v] => 2 )