0

static $myvar = $my_array[3];

直到现在我才需要使用静态函数。但我需要使用它来存储 afunction或a 的返回值array

static $myvar = $my_array[3];

static $myvar = my_func();

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

4

4 回答 4

2

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

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

    $counter++;
    echo $counter;
}

请注意,除了在 OOP 编程中的用法之外,static 关键字还可用于在函数体中声明静态变量,该函数体应仅初始化一次。

所以调用foo()将给你以下输出,因为$counter它只在第一次foo()被调用时被初始化:

foo(); // 1
foo(); // 2
于 2013-04-30T18:22:37.307 回答
0

看起来你没有正确使用它。请参阅PHP.net:静态关键字。你需要在课堂上使用它。而且我不确定您是否需要指定public private protected.

于 2013-04-30T18:21:33.323 回答
0

看看PHP 静态

静态用于 OOP

于 2013-04-30T18:19:34.167 回答
0

静态变量页面:

静态声明在编译时解析。

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

这就是为什么您不能分配$my_array[3]给静态变量的原因。变量的内容在编译时是未知的。

于 2013-04-30T18:43:48.267 回答