array_pop不能改变$this数组变量?

#1 coolcool1265

 
function index(){
  $this->stack = array("orange", "banana", "apple", "raspberry");
  dump($this->stack);
  $fruit = array_pop($this->stack);
  dump($this->stack); //$this->stack的值和原来一样,并没有改变。
}


如果把上面的变量不用$this->stack,而用$stack结果是正确的。这是为什么?数组函数对它无效么?


PS:我试过了用临时变量
下面的结果是正确的。
function index(){
  $a= array("orange", "banana", "apple", "raspberry");
  dump($a);
  $fruit = array_pop($a);
  $this->stack=$a;
  dump($this->stack);
}

2011-03-13 15:26:03

#2 jake

在控制器内,非控制器类成员变量的$this->stack是将变量发送的模板的方法,和控制器成员变量的使用方法是不同的。

一般数组的处理函数,建议用临时变量

2011-03-13 15:32:41

#3 coolcool1265

:victory:谢谢jake

2011-03-13 15:44:04

#4 dhs789520

回复 3 coolcool1265


    http://speedphp.com/bbs/thread-1518-1-1.html


参看正解,和解决方法,jake还在考虑是不是要作修改

2011-06-06 22:04:52