比方说我在一个类的方法中定义了一个变量,这个变量必须是静态变量,然后我在同一个类的另一个方法中要用到这个变量,请问怎么实现?
http://php.net/manual/zh/language.oop5.static.php 文档很明确啊...
$this->foo1();
public function foo1()
{
$arr9 = [0, 1, 2, 3, 4];
\a_y::debug($this->foo2($arr9));
}
public function foo2($arr)
{
static $result = [];
$len = count($arr);
if ($len < 1) {
\a_y::debug($result);
return $result;
}
$len --;
$_a = rand(0, $len);
array_push($result, $arr[$_a]);
$new = [];
foreach ($arr as $key=>$val){
if ($val !== $arr[$_a]) {
array_push($new, $val);
}
}
$this->foo2($new);
}
能帮忙看看么?
为什么我在foo1 里面debug出来是个空数组,而在foo2里面debug出来是有数据的?
@清华大学副院长: 定义为全局的,看看。
@幻天芒: 刚看了你发的文档,我想如果定义一个全局的 public static $result,然后在两个方法中用self::$result去访问,好像应该可以。但是现在已经下班了,要明天再去测...
@清华大学副院长: 多对照文章,自行测试,很多问题都能迎刃而解。
刚才测试了一下,是可以的,但是我还是想不通,为什么我之前的写法行不通呢?
@清华大学副院长: 这个,就靠你慢慢体会了,
@幻天芒: .......我猜你也不知道
@清华大学副院长: 嗯,是的。
各位高人真是有耐心,简直是奶爸
大牛你好