【php】値渡し、参照渡しとか

値の値渡し

function set($arr) {
  $arr[0] = 2;
}
$arr = [1];
set($arr);
print_r($arr); // => [1]

値の参照渡し

function set(&$arr) {
  $arr[0] = 2;
}
$arr = [1];
set($arr);
print_r($arr); // => [2]

参照の値渡し

function set($obj) {
  $obj->pro = 2;
}
$obj = new Obj;
$obj->pro = 1;
set($obj);
print_r($obj); // => $pro = 2

参照の値渡し2

function set($obj) {
  $obj = new Obj;
  $obj->pro = 2;
}
$obj = new Obj;
$obj->pro = 1;
set($obj);
print_r($obj); // => $pro = 1

参照の参照渡し

function set(&$obj) {
  $obj->pro = 2;
}
$obj = new Obj;
$obj->pro = 1;
set($obj);
print_r($obj); // => $pro = 2

参照の参照渡し2

function set(&$obj) {
  $obj = new Obj;
  $obj->pro = 2;
}
$obj = new Obj;
$obj->pro = 1;
set($obj);
print_r($obj); // => $pro = 2