首页 新闻 会员 周边 捐助

PHP有静态全局变量么?

0
悬赏园豆:10 [已解决问题] 解决于 2015-04-29 13:57

比方说我在一个类的方法中定义了一个变量,这个变量必须是静态变量,然后我在同一个类的另一个方法中要用到这个变量,请问怎么实现?

php
清华大学副院长的主页 清华大学副院长 | 初学一级 | 园豆:28
提问于:2015-04-24 09:34
< >
分享
最佳答案
2

http://php.net/manual/zh/language.oop5.static.php  文档很明确啊...

收获园豆:8
幻天芒 | 高人七级 |园豆:37205 | 2015-04-24 10:19

$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);
    }

 

清华大学副院长 | 园豆:28 (初学一级) | 2015-04-27 20:43

能帮忙看看么?

为什么我在foo1 里面debug出来是个空数组,而在foo2里面debug出来是有数据的?

清华大学副院长 | 园豆:28 (初学一级) | 2015-04-27 20:44

@清华大学副院长: 定义为全局的,看看。

幻天芒 | 园豆:37205 (高人七级) | 2015-04-27 21:05

@幻天芒: 刚看了你发的文档,我想如果定义一个全局的 public static $result,然后在两个方法中用self::$result去访问,好像应该可以。但是现在已经下班了,要明天再去测...

清华大学副院长 | 园豆:28 (初学一级) | 2015-04-27 21:09

@清华大学副院长: 多对照文章,自行测试,很多问题都能迎刃而解。

幻天芒 | 园豆:37205 (高人七级) | 2015-04-28 09:52

刚才测试了一下,是可以的,但是我还是想不通,为什么我之前的写法行不通呢?

清华大学副院长 | 园豆:28 (初学一级) | 2015-04-28 13:43

@清华大学副院长: 这个,就靠你慢慢体会了,

幻天芒 | 园豆:37205 (高人七级) | 2015-04-28 14:55

@幻天芒: .......我猜你也不知道

清华大学副院长 | 园豆:28 (初学一级) | 2015-04-28 16:27

@清华大学副院长: 嗯,是的。

幻天芒 | 园豆:37205 (高人七级) | 2015-04-28 16:37
其他回答(2)
0
收获园豆:1
爱编程的大叔 | 园豆:30844 (高人七级) | 2015-04-24 09:43

可以直接回答么,官方文档太多了

支持(0) 反对(0) 清华大学副院长 | 园豆:28 (初学一级) | 2015-04-24 09:53

@清华大学副院长: 清华应该为你骄傲。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30844 (高人七级) | 2015-04-24 10:08
-1

各位高人真是有耐心,简直是奶爸

arg | 园豆:1047 (小虾三级) | 2015-04-24 15:16

大牛你好

支持(0) 反对(0) 清华大学副院长 | 园豆:28 (初学一级) | 2015-04-27 20:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册