Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony2控制器中的静态变量_Php_Symfony - Fatal编程技术网

Php Symfony2控制器中的静态变量

Php Symfony2控制器中的静态变量,php,symfony,Php,Symfony,我想我需要一些静态变量,但无法得到一个运行的示例。我是一名经验丰富的web开发人员,主要使用Java,因此Php对我来说是次要的。我知道会话变量,但这些变量不能满足我对本例的需求。这里,我需要一组全局变量,并在不同会话/客户端之间共享。所以,我挖掘了一点,似乎做这项工作的是静态变量。不需要这样,但这似乎是最简单的 这里有一个简单的例子,但它失败了。它只是一个计数器,我期望它不断增加,但我不断得到的结果是2,就好像它在每个页面请求上都被初始化一样: class DefaultController

我想我需要一些静态变量,但无法得到一个运行的示例。我是一名经验丰富的web开发人员,主要使用Java,因此Php对我来说是次要的。我知道会话变量,但这些变量不能满足我对本例的需求。这里,我需要一组全局变量,并在不同会话/客户端之间共享。所以,我挖掘了一点,似乎做这项工作的是静态变量。不需要这样,但这似乎是最简单的

这里有一个简单的例子,但它失败了。它只是一个计数器,我期望它不断增加,但我不断得到的结果是2,就好像它在每个页面请求上都被初始化一样:

class DefaultController extends Controller
{
public static $counter = 1;

public function testAction() {
    self::$counter++;
    }
}
所以我的问题是,为什么这不能像预期的那样起作用?有没有其他方法可以通过使用Symfony2对象来实现这一点?也许,我在查看文档时还没有发现任何东西

--增加--

谢谢你到目前为止的评论。那么,让我这么说吧。我试图实现的目标是拥有全局变量而不是常量,我希望能够在运行时编辑这些变量。我知道我可以通过数据库或序列化到磁盘来实现这一点,但这会使设置变得有点复杂,我希望将其保持在最低限度。使用外部存储似乎是一种解决方法。。。所以,如果我想继续使用纯PHP/Symfony2的方式,这不能做到吗?在java中,我不喜欢比较这样的东西,所以请保持主题,但服务器软件将一直运行,直到进程关闭,所以是的,有可能有全局变量,您可以以这种方式编辑。另外,还可以在http请求之外保留类变量,所以我想我也可以这样做。再次感谢,在最坏的情况下,我将只使用数据库或序列化到文件,解决方法

--又加上--


等等,不清楚?如果是的话,至少留下评论。如果需要,我很乐意提供更多的细节/澄清,但我花了一些时间重新阅读我的帖子,提供细节,并自己研究可能的解决方案。否则,这只是悲哀和无用的。。。如果可能没有办法做到这一点,至少我会知道并停止怀疑。

如果是静态的,则不应更改该值。您可以定义一些用于细枝模板,但值不能更改。PHP不是Java。PHP静态变量是无共享体系结构中的全局变量。请求之后,这些都不见了。将其存储在数据库中,编写一个获取/设置该变量的服务,将其捆绑起来,进行配置,就完成了sf2风格的工作。这个问题中的示例真的可以在Java中使用吗?我的意思是,我从来没有听说过一种语言可以获得永久增加变量的内存。谢谢!仅供参考我在问题中添加了一小部分。。。