PHP加速器和静态字段

时间:2010-03-03 06:50:04

标签: php class static state accelerator

我想知道PHP解释器中的静态(类)字段表示。

例如,在Java中加载类时,静态字段将与该Class对象关联;这意味着运行相同JVM(和相同的类加载器)的两个应用程序将具有某种共享的全局变量;)

我只是想知道,如果我使用某种PHP加速器/操作码缓存,那真正缓存的是什么?它只是编译后的字节码,还是一个VM状态(负责存储类对象)?

这是因为我害怕在请求之间共享静态字段/单例对象等。

P.S。:我真的是一个PHP新手,所以如果问题太愚蠢我很抱歉:)

1 个答案:

答案 0 :(得分:4)

操作码缓存不会改变任何内容:每个PHP脚本都由其自己的进程(或线程)执行,与其他脚本隔离。

操作码缓存只会缓存操作码(相当于JAVA的字节码的PHP),并且也不存储与脚本的当前执行无关 - 即不是任何类型的“ VM状态“。

这意味着,对于PHP脚本的每次执行,您的static变量将存在于一个版本中,即使该脚本并行执行多次;使用或不使用操作码缓存不会改变事物。