为什么这不起作用? static $ myvar = $ my_array [3];

时间:2013-04-30 18:17:09

标签: php variables

static $myvar = $my_array[3];

到目前为止,我从未需要使用静态功能。但我需要使用它来存储functionarray的返回值:

static $myvar = $my_array[3];

static $myvar = my_func();

为什么我不能这样使用它?静态只用于整数?

4 个答案:

答案 0 :(得分:2)

我不确定你是否在寻找这个:

function foo() {
    static $counter;
    if(!$counter) {
        $counter = 0;
    }

    $counter++;
    echo $counter;
}

请注意,除了在OOP编程中的用法之外,static关键字可用于在应该只初始化一次的函数体中声明static variables

因此调用foo()会给您以下输出,因为$counter仅在第一次调用foo()时初始化:

foo(); // 1
foo(); // 2

答案 1 :(得分:0)

查看PHP Static

静态用于OOP

答案 2 :(得分:0)

看起来你没有正确使用它。请参阅PHP.net: Static Keyword。你需要在课堂上使用它。我不确定您是否需要指定public private protected

答案 3 :(得分:0)

来自Static Variables的页面:

  

静态声明在编译时解析。

请参阅链接页面上的示例7.

这就是您无法将$my_array[3]分配给静态变量的原因。在编译时不知道变量的内容。