我认为我需要一些静态变量,但无法获得一个实例。我是一个相当有经验的网络开发人员,主要是Java,所以Php对我来说是次要的。我知道会话变量,但这些并不能满足我对这种情况的需求。在这里,我需要一组变量为全局变量,并在不同的会话/客户端之间共享。所以,我挖了一下,似乎可以做的工作是静态变量。它不需要那样,但它似乎是最简单的。
所以,这是一个简单的例子,但它失败了。它只是一个我预期会不断增加的计数器,但我经常得到的结果是2,好像它是在每个页面请求上初始化的那样:
class DefaultController extends Controller
{
public static $counter = 1;
public function testAction() {
self::$counter++;
}
}
所以我的问题是为什么这不能按预期工作?有没有其他方法可以使用一些Symfony2对象实现这一点,我没有找到任何查看文档的内容。
- 已添加 -
感谢您的评论到目前为止。所以,让我这样说吧。我试图实现的目标是拥有全局变量而不是常量,我希望能够在运行时编辑这些变量。我知道我可以使用数据库或序列化到磁盘,但这些设置有点复杂,我希望保持最小化。使用外部存储似乎是一种解决方法......所以,如果我继续使用纯PHP / Symfony2方式,那么这是不是可以做到的?在java中,我讨厌比较这样的事情,所以请保持主题,但服务器软件将继续运行,直到进程关闭,所以是的,可以有全局变量,你可以这样编辑。此外,它可能有类变量,这些变量将在http请求之外保留,所以我想我也可以这样做。再次感谢,在最坏的情况下,我只是使用数据库或序列化文件,解决方法...
- 再次添加 -
搁置,不清楚?如果是这样,至少发表评论,如果需要,我很乐意提供进一步的细节/说明,但我花了一些时间重新审视我的帖子,提供详细信息并自己研究可能的解决方案。否则,这只是悲伤和无用......如果没有办法实现这一目标,至少我会知道并停止思考。