猿问

php静态变量问题

目前使用php5.6版本,刚刚试着了解静态变量,简单写了个方法

class test
{
    public function test()
    {
        static $a = [];
        $a[] = 1;
        return $a;
    }
}
$test = new test();
$a = $test->test();
print_r($a);

输出是


请问这个结果是怎么产生的?我以为结果会是array([0]=>1);

倚天杖
浏览 485回答 4
4回答

弑天下

构造函数执行了一次,直接调用执行了一次,所以数组里有两个元素

德玛西亚99

和类名相同的方法=构造方法

繁星点点滴滴

class test{ function test(){ } } $test = new test(); $a = $test->test(); 相当于 class test{ function __construct(){ } } $test = new test();//此时已经 __construct(); 创建时已经调用了 $a = $test->__construct();//第2次调用
随时随地看视频慕课网APP
我要回答