【发布时间】:2013-08-31 15:36:02
【问题描述】:
我需要在一个类的范围内定义一个 constant 数组,该数组将被静态使用(即我没有创建该类的实例)。这是适用于 PHP5 但不适用于 PHP4 的示例代码:
class MyTest {
static $arr = array(100, 200);
function test() {
print_r(MyTest::$arr);
}
}
MyTest::test();
如何更改此代码以使其在 PHP4 (4.4.9-pl0-gentoo) 中工作?
备注:
- 它必须在 PHP4 中工作。
- 我需要最好以静态方式访问数组,而不需要创建实例。但是这个要求可以放弃。
- 我不能使用
GLOBALS,因为代码必须在phpunit单元测试中工作。这样做时,在单元测试中看不到文件头中定义为GLOBAL的数组。 - 我想在正在使用的函数之外定义数组(包含常量值)。但如果没有其他可能性可以解决我的问题,也可以放弃此要求。
【问题讨论】:
-
任何特殊的 PHP4 版本?
-
如果您指的是 phpunit(即单元测试) - 为什么要使用
static?它使测试变得更加困难。 -
PHP4?真的??在 2013 年,什么样的精神错乱让你不得不满足这一要求?我希望你为此付出了很多。
-
@Spudley:我知道这很疯狂。更糟糕的是:代码混合了 PHP4 和 PHP5 代码!但不幸的是,这不是我的决定……
-
如果它在公共网络服务器上,那么任何做出决定的人都需要迅速受到众所周知的线索蝙蝠的打击。这些天运行 PHP4 的安全隐患是可怕的。我什至可以说这是故意疏忽。