1

背景:我有一个具有静态函数的现有类,我想将其重用于同一项目的另一部分。静态函数使用$_GET等。

这是令人费解的代码。首先,类:

<?php

// ./fakeapi/fakeapi.php

class FakeAPI {

    static public function test (){

        $var = '_GET';
        ${$var}['newVar'] = '123';
        print_r($_GET);

    }
}

以及需要它的文件:

<?php

require_once 'fakeapi/fakeapi.php';

FakeAPI::test();

$var = '_GET';
${$var}['newVar'] = '123';
print_r($_GET);

印刷:

Array
(
)
Array
(
    [newVar] => 123
)

...我不知道为什么。这不是范围问题,因为如果我$_GET['newVar'] = '123';在类函数中设置,它就可以工作。有谁知道这里发生了什么?

4

1 回答 1

0

根据 PHP 手动变量变量

警告

请注意,变量变量不能在函数或类方法中与 PHP 的超全局数组一起使用。变量 $this 也是一个不能动态引用的特殊变量。

于 2013-07-21T00:39:39.653 回答