234cfds1 发表于 2015-8-27 13:37:45

PHP 引用数组做函数参数

  函数参数传递引用是很常见的问题,但是最近在使用PHP写网页的时候发现了这样的问题!

1    public function delete(&$arr){
2      unset($arr);
3    }
4    public function indexAction()
5    {
6      $arr = array(1,2,3,4,5);
7      $this->delete($arr);
8      print_r($arr);
9    }  
  代码很简单,在函数indexAction函数中定义数组,引用传递给delete函数;
  在delete函数中将整个数组释放掉,
  函数返回后在indeAction中打印$arr内容如下:
  Array ( => 1 => 2 => 3 => 4 => 5 )
  
  但是删除数组中的第三个元素没有问题:

1    public function delete(&$arr){
2      unset($arr);
3    }
4    public function indexAction()
5    {
6      $arr = array(1,2,3,4,5);
7      $this->delete($arr);
8      print_r($arr);
9    }  输出结果:
  Array ( => 1 => 2 => 4 => 5 )
  不知道是为什么;简单的解决办法:
  将修改后的数组返回,希望如果谁有更好的办法告诉我!

1    public function delete(&$arr){
2      unset($arr);
3      return $arr;
4    }
5    public function indexAction()
6    {
7      $arr = array(1,2,3,4,5);
8      $arr = $this->delete($arr);
9      print_r($arr);
10    }  
  
页: [1]
查看完整版本: PHP 引用数组做函数参数