假设有类
<?php
class MyClass {
protected $arr;
public function __construct() {
$this->arr = array();
}
public function getArr() {
return $this->arr;
}
public function append($arr) {
$this->arr[] = $arr;
}
public function merge($arr) {
$this->arr = array_merge($this->arr, $arr);
}
}
2个函数调用的效果不同
<?php
$arr = array('a','b');
$obj = new MyClass();
$obj->append($arr);//使用append无法修改类属性
var_dump($obj->getArr());
//output :
//array(0){}
$obj->merge($arr);//使用merge可以
var_dump($obj->getArr());
//output:
//array(2){'a','b'}
这是为什么?